Apache+mod_proxy_balancerでフェイルオーバー

ApacheWebLogicが2台ずつの冗長構成でシステムを作ろうとしてたんだけど、WebLogicがStandard Editionになってしまいクラスタリングが行えなくなった。当初、ApacheWebLogicの間はmod_proxy_balancerでラウンドロビンで振り分けようとしてたんだけど、そうするとセッションが維持できない。

で、セッションを維持するため、2台のWebLogicのうち1台をホットスタンバイとして、通常は1台の決められたWebLogicへ処理を振るようにしようと思ったが、mod_proxy_balancerの日本語訳のページにはそれらしき設定がない。

友達に聞いてフェイルオーバーとかで調べればということだったので、「Apache mod_proxy_balancer フェイルオーバー」でぐぐると出てきた!
http://mm.apache.jp/pipermail/apache-users/2008-January/007008.html
http://httpd.apache.org/docs/2.2/en/mod/mod_proxy.html#proxypass

下の例のように、status=+Hとすれば、その行のサーバはホットスタンバイとなって通常はリクエストを割り振られないらしい。で、正常に動いていたサーバがダウンした場合だけ、status=+Hとなっているサーバにリクエストが割り振られる。
コレガヤリタカッタンダ。

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>