2016-09-14 8 views
0

私は、クライアントからの "customerlocale"ヘッダーからのバージョンに基づいて異なるアップストリームをルーティングしようとしています。これはconfigの下で動作していません。これを行うにはいくつか考えてください。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、返事ありがとうございました。私はこれを試して、 "if"条件のチェックが機能していない。このようにしてみました。 は$ v "2"を設定します。 if($ v = "2") { proxy_pass http:// upstream-2; } それは状態の中に入っていません。 –

+0

と私のnginxバージョンは1.4.6です。 –

答えて

0

1.4.6から1.11.3へのnginxを更新した後、それが正常に動作します。ありがとうございました。

関連する問題