5

そのため、Apache 2.2 によって負荷分散されている 2 つ以上のバックエンド サーバー (たまたま JBoss サーバー) のクラスターを実行しています。時折、バックエンド サーバーが応答しなくなることがあります (つまり、バックエンド サーバーは要求に応答するまで何年も待つことになりますが、すぐに接続を閉じないでください)。これは当然 502 "Bad gateway" エラーになります。つまり、ロードバランサーはフェイルオーバーして残りのインスタンスにリクエストをリダイレクトする必要があるということです。

バランサーのノードがエラー状態になる可能性があることは確認しましたが、強制的にその状態に完全に送信することはできませんでした (つまり、最初の 502 が検出された後に送信します)。何か不足していますか、それとも単に私が望んでいる機能ですか? ああ、ここに私の設定があります:

<Proxy balancer://s>
    Order deny,allow
    Allow from all

    BalancerMember http://host1:8080/ route=h1 timeout=20 retry=40
    BalancerMember http://host2:8080/ route=h2 timeout=20 retry=40
</Proxy>

# Distribute by Round Robin, use Sticky Sessions
ProxyPass / balancer://s/ stickysession=JSESSIONID lbmethod=byrequests nofailover=On
ProxyPassReverse /  http://host1:8080/
ProxyPassReverse /  http://host2:8080/

ベスト、セバスチャン

4

1 に答える 1

5

nofailover=On を指定すると、フェールオーバーしないため、502 エラーが発生します。フェールオーバーする場合は、 nofailover=Off にする必要があります。これは、フェールオーバーする必要があることを意味します。

于 2009-05-16T16:06:00.183 に答える