2009-06-03 8 views
1

mod-proxyとmod-proxy-balancerの設定は、ロードバランスリバースプロキシとして使用しています。このような何か:Apache mod-proxyロードバランサメンテナンス

<Proxy balancer://example> 
    BalancerMember http://hostname:8000 keepalive=on 
    BalancerMember http://hostname:8001 keepalive=on 
</Proxy> 

ProxyPass/balancer://example/ 
ProxyPassReverse/balancer://example/ 
ProxyPreserveHost on 
ProxyRequests Off 

はバランサグループのすべてのメンバーがダウンしている場合、静的なメンテナンスページを表示するためにこれを設定するための簡単な方法はありますか?以前はハードウェアロードバランサを使っていましたが、非常に便利でした。

答えて

4

ホットスタンバイを使用することもできます。以下の例では、それはあなたと同じことを行うことができますするRewriteRuleの代わりとして

ProxyPass/balancer://hotcluster/ 
<Proxy balancer://hotcluster> 
BalancerMember http://1.2.3.4:8009 loadfactor=1 
BalancerMember http://1.2.3.5:8009 loadfactor=2 
# The below is the hot standby 
BalancerMember http://1.2.3.6:8009 status=+H 
ProxySet lbmethod=bytraffic </Proxy> 
+0

これはいい考えですが、完全に動作させるには、スタンバイメンバーがURLパスを無視するための書き換えルールと組み合わせなければなりません。 – schickb

1

「だけは他のメンバーが使用できない場合に使用されるホットスタンバイを設定する」と言うProxyPass Directiveセクションからです適切なErrorDocumentディレクティブ。私たちは、プロキシサーバー自体が静的エラーページをホストし、 "ホットスタンバイ"ホストがhttp://localhost/some-app/であるような何かをします。

0

プロキシが唯一のページ(おそらくVirtualHost内)であるように思われるので、単にエラーページを上書きできます。 Apacheは503エラーが発生しますので、これは次のようになります。あなたは、メンテナンスのhtml内の画像を使用したい場合は、絶対パス(例えば/image.jpg)を使用する必要はありませんしてくださいということ

# Document root is required because error documents use relative paths 
DocumentRoot /var/www/html/ 
# Allow access to document root directory 
<Directory /var/www/html/> 
    Order allow,deny 
    allow from all 
</Directory> 
# Actual change: If service is unavailable (no member available), show this page 
ErrorDocument 503 /maintenance.html 

の/ varをロードします/www/html/image.jpg。