2012-02-03 1 views
2

Nginxを使用して2つの上流アプリケーションサーバー間の負荷分散を行い、展開するときにどちらか一方をダウンさせたいと考えています。私たちが1つを止めると、Nginxは他の人にフェイルオーバーしていないことがわかりました。要求を送信し続け、エラーを記録します。Nginxがロードバランシングに使用されてもフェイルオーバーしない

私たちの上流ディレクティブの形式は次のとおりです。

upstream app_servers { 
    server 10.100.100.100:8080; 
    server 10.100.100.200:8080; 
} 

nginxのドキュメントを読んでから、私たちの理解は、彼らが妥当なデフォルト値を持っているので、我々は明示的に「max_fails」または「fail_timeout」を指定する必要がないことです。 (すなわち、1のmax_fails)。

私たちはここで何が不足しているのでしょうか?

ありがとうございました。文書1として

答えて

3

...

max_fails = NUM​​BER - それが動作不能と見なされた後(パラメータ fail_timeoutによって割り当てられた)時間内にサーバと 通信に失敗した試行の数。設定されていない場合は、 試行回数は1回です。値0はこのチェックをオフにします。 が失敗とみなされるものは、proxy_next_upstreamまたは fastcgi_next_upstreamによって定義されます(max_failsに対して を数えないhttp_404エラーを除く)。

ドキュメントごとに、エラーはproxy_next_upstreamまたはfastcgi_next_upstreamで定義されています。

送信要求とロギングエラーを継続します。

それがデフォルト(エラーやタイムアウト)でない場合、あなたはproxy_next_upstreamまたはfastcgi_next_upstreamで独占的にそれを定義したい場合、記録されたエラーの種類のログを確認してください。

関連する問題