2016-09-14 55 views
0

我嘗試根據來自客戶端的「customerlocale」頭的版本路由不同的上游。但是這個下面的配置不起作用。請給出一些想法來做到這一點。如果nginx proxy_pass中的條件

server { 
listen 80 default; 

location/{ 

     if ($http_customerlocale = en) { 
       proxy_pass http://upstream-en; 
     } 
     if ($http_customerlocale = de) { 
       proxy_pass http://upstream-de; 
     } 

} 

}

+0

假設你意識到在一個位置塊中'if' **的含義,你可能需要考慮將你的語言環境與不區分大小寫的正則表達式匹配,例如if($ http_customerlocale〜*「en」) ' –

+0

@KeenanLawrence,謝謝你的回覆。我試過這個,「如果」條件檢查不起作用。甚至嘗試過這樣。如果($ v =「2」) set $ v「2」 { proxy_pass http:// upstream-2; } 它不會在條件內。 –

+0

和我的nginx版本是1.4.6。 –

回答

0

更新的nginx 1.4.6從1.11.3到後,它工作正常。謝謝。