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 が後続のリクエストからだけでなく、同じリクエストに対してスタンバイを試行するようにします。