mod_proxy_ajpを使ったTomcat連携にmod_proxy_balancerを加えると、ApacheをTomcatのロードバランサとして使えるようだ。モジュールだけでこんな事までできるとは、最近のApacheはとても高機能ですね。以下Apache 2.2 + Tomcat 5.5で試した設定。
ProxyRequests Off <Location /hoge/> ProxyPass balancer://hoge/ stickysession=jsessionid nofailover=Off </Location> <Proxy balancer://hoge/> BalancerMember ajp://192.168.1.2:8009/hoge/ BalancerMember ajp://192.168.1.3:8009/hoge/ </Proxy>
Location等の最後のスラッシュを忘れずに。あとは、Tomcatでセッションレプリケーションの設定をすればお手軽Tomcatクラスタの出来上がり。うーむ、こんなに簡単でいいのだろうか?
mod_proxy_balancerはリクエスト毎に接続先を振り分けるようでリロードする度に毎回接続先のTomcatが変わる。セッションレプリケーションしていれば問題ないが、同一クライアントからのアクセスは同一サーバに飛ばすような設定にもできないかなぁ。
ロードバランサーは高性能なプロダクトが多くあり、mod_proxy_balancerの性能もきっちり評価しないといけないので簡単には決められないけど、選択肢の一つとして覚えておいていいかも。