2017-06-21 4 views
0

正確にホスト名を必要とする2つのバックエンドでワニスを実行しようとしています。しかし、私のnginxはlocalhostホストヘッダーを受信して​​います。ワニスhost_headerはバックエンドに送信されません

これは私の設定です:

probe healthcheck { 
    .url = "/"; 
    .interval = 5s; 
    .timeout = 15s; 
    .window = 5; 
    .threshold = 3; 
} 

# Define the list of backends (web servers). 
# Port 443 Backend Servers for SSL 
backend bimer1 { 
    .host = "nginx-proxy"; 
    .host_header = "site1.example.com.br"; 
    .port = "80"; 
    .probe = healthcheck; 
} 

backend bimer2 { 
    .host = "nginx-proxy"; 
    .host_header = "site2.example.com.br"; 
    .port = "80"; 
    .probe = healthcheck; 
} 

は、これは私のnginxのアクセスログです:

bimer - キャッシュ - nginxの-SSL-proxy_1 | "POST /ws/Servicos/Geral/Localizacoes.svc/REST/LocalizarPessoas HTTP/1.1" 502 575 " - " "Mozilla/5.0(172.17.0.3 - - [21/Jun/2017:13:41:47 +0000] X11; Linuxのヤモリのようなx86_64版)のAppleWebKit/537.36(KHTML、)クローム/ 59.0.3071.104サファリ/ 537.36" < - >ローカルホスト172.17.0.1、172.17.0.3

これは、バックエンドに設定されたhost_headerパラメータのように見えるだではありません定期的なリクエストに取り組んでいます。しかし、健康診断はうまくいっています。

答えて

0

ワニスは透過的なHTTPプロキシです。それはクライアント(あなたのブラウザ)によってそれに送られたHostヘッダがバックエンドに転送されます。したがって、http://localhost/でアクセスした場合は、Hostヘッダーでバックエンドに表示されるのはlocalhostです。

さらに、ほとんどの場合、ワニスバックエンド定義ではDNS名を使用しないでください。あなたの構成されたバックエンドは同じ機nginxのプロキシに解決現在のところ

backend bimer1 { 
    .host = "1.2.3.4"; 
    # ... etc. 

:それは代わりに次のようになります。また、access.logの結果はヘルスチェックの結果ではありません。 (設定したヘルスチェックがルートURL /にアクセスすると表示されます)

おそらく、あなたはワニスの設定を誤解しています。あなたの計画が同じマシンを介して複数のウェブサイトを提供することになっていたら、すべてのバックエンドを1つだけ使用してください。複数のバックエンドは、複数のマシン用です。

+0

こんにちは@ダニエル-v、私はキャッシュが必要なサーバーのハットがHTTPS接続のみを受け入れるため、同じマシンでnginxを使用しています。次に、NGINXをSSLプロキシとしてこれらのサーバーに使用しています。 – ePhillipe

+0

ユースケースではバックエンド定義は1つだけ必要です。 –

関連する問題