10

mod_proxy_balancer を使用してバックエンド サーバーのフェイルオーバーを管理しています。バックエンド サーバーは、NFS などの他のバックエンド サービスが失敗したときに、タイムアウトではなくエラー コードを返す場合があり、そのようなサーバーも失敗したノードとしてマークする必要があります。したがって、failonstatus ディレクティブを使用しています。

<Proxy balancer://avatar>
    ProxySet failonstatus=503 
    BalancerMember http://active/ retry=30
    # the hot standby
    BalancerMember http://standby/ status=+H retry=0
</Proxy>

現在、フェールオーバーは 1 つの不具合で完全に機能します。アクティブ ノードに障害が発生すると、ユーザーは 503 エラーを受け取り、次の要求からスタンバイ サーバーが引き継ぎます。

ただし、単一のリクエストでも失敗したくありません。クライアントにエラーを返さずに mod_proxy フェイルオーバーできませんか? アクティブ ノードに障害が発生した場合、mod_proxy が後続のリクエストからだけでなく、同じリクエストに対してスタンバイを試行するようにします。

4

2 に答える 2

3

あなたは Apache HTTPd メーリング リストでこれを尋ねたと思いますが、残念ながら満足のいく回答が得られませんでした。ServerFault でほぼ同じ質問をしたので、まとめておきます。

https://serverfault.com/questions/414024/apache-httpd-workers-retry

于 2012-08-06T14:33:38.503 に答える
2

あなたが求めていることを達成する新しいモジュールがあり ますhttps://httpd.apache.org/docs/2.4/mod/mod_proxy_hcheck.html

于 2016-09-02T14:50:28.873 に答える