
私は DMZ でリバース プロキシ サーバーとして Apache 2.2.4 を使用しています。2 つの BalancerMember サーバーが稼働しているときは、プロキシ バランサーは正常に動作しているように見えます。しかし、1 つをシャットダウンすると、ページを読み込むたびに、サイトに何かが読み込まれるまでに約 30 ~ 45 秒かかります。これが私の構成です。
ServerName mywebsite.com
ProxyRequests Off
<Proxy *>
Order deny, allow
Allow from all
</Proxy>
<Proxy balancer://mycluster>
BalancerMember http://10.10.10.10:80/outside loadfactor=1 retry=60
BalancerMember http://10.10.10.11:80/outside loadfactor=1 retry=60
</Proxy>
ProxyPass /outside balancer://mycluster/
ProxyPassReverse /outside balancer://mycluster/
ProxyPass /balancer-manager !
<Location /balancer-manager>
SetHandler balancer-manager
</Location>
サーバーは、背後にある REST サービスのリバース プロキシとして機能します。Web アプリケーションをロードすると、REST サービスが複数回呼び出されるため、プロキシに一度に多数のリクエストが送信されるため、これが速度低下の原因になっているかどうかはわかりません。
答え1
をほんの数秒に設定しますProxyTimeout
。実際には、タイムアウトになるのではなく、ダウンしているバックエンドへの接続を長い間試行している状態になっています。
のように設定すると、ProxyTimeout 3
接続がより早く失敗し、そのretry=60
設定によりダウンしたサーバーは次の 1 分間は再び使用されなくなります。