Powered By Blogger

2013年6月3日月曜日

Apache、Tomcatによるロードバランシング

以下の前提条件で記述します。
  1. Apacheがインストール済みである
  2. Tomcatがインストール済みである
  3. Apacheはproxy-ajpやproxy-proxy-balancerを有効にしてインストールしてある
冗長構成の内容はApacheは一台でバックエンドの2台のTomcatに対してバランシングを行います。

Apacheの設定

バランシングの設定値は以下です。

キー説明
stickysession/home/hoge/apache同一情報に継続的に接続する為のセッション値を指定します。Tomcatの場合はstickysession=JSESSIONIDを指定します。注意点として大文字小文字が区別される。
nofailoveroffアプリケーションがフェールオーバーに対応していればoffを、対応してない場合はonを指定する。
timeout1ワーカーを取得するまでの最大待機時間。デフォルトでは待機しないのでエラーを返してしまう場合があるので1秒を指定。
loadfactor10ロードバランスする割合を指定する。
routeAP1には「sv1」、AP2には「sv2」どのサーバに割り振るか動作している指定する。TomcatのJvmRoute値と合わせる必要がある。
retry5ApacheとTomcatとの再接続思考の間隔。デフォルトは60秒なので短くしておく。
ttl20非活動状態のコネクションと、関連するコネクションプール内のエントリの 生存時間を秒で指定します。


Balancerの設定

${APACHE_HOME}/conf/extra/httpd-proxy.confに以下の設定を記述します。
<location hoge="">
    ProxyPass balancer://hoge/ stickysession=JSESSIONID|jsessionid nofailover=Off ttl=20
</Location>

<Proxy balancer://hoge/>
    BalancerMember ajp://xxx.xxx.xxx.xxx:8009/ec loadfactor=10 route=sv1 retry=5
    BalancerMember ajp://yyy.yyy.yyy.yyy:8009/ec loadfactor=10 route=sv2 retry=5
</Proxy>


Tomcatの設定

${TOMCAT_HOME}/conf/server.xmlのEngine要素に対してjvmRouteを設定します。
AP1の場合
<Engine name="Catalina" defaultHost="localhost" jvmRoute="sv1">

AP2の場合
<Engine name="Catalina" defaultHost="localhost" jvmRoute="sv2">
Tomcat、Apacheを再起動すれば設定は完了です。

0 件のコメント:

コメントを投稿