MyOSS Tomcatロードバランシング設定手順

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Tomcat ロードバランシング設定手順

環境

以下2台の環境で行った.
Server1
OS:RedHat Linux
Apache:2.0.54
Tomcat:5.5.9
Apache/Tomcat Connector:mod_jk 1.2.14
JDK:j2sdk1.5.0_04

Server2
OS:Windows XP SP1
Tomcat:5.5.9
JDK:j2sdk1.5.0_04

Linux上でApacheを稼動させ,Linux/Windows上で稼動する2台のTomcatにバランシングするように設定.

設定方法

既にApache/Tomcatがインストールされていることを前提とする.各プロダクトのインストール方法はApache+Tomcatの連携手順を参考のこと.

workers.properties

# Worler List
#
worker.list=loadbalancer

#
# First Server Configuration
# Servername:Server1
#
worker.lb1.type=ajp13
worker.lb1.host=localhost
worker.lb1.port=8090
worker.lb1.lbfactor=1

#
# Second Server Configuration
# Servername:Server2
#
worker.lb2.type=ajp13
worker.lb2.host=${server2_ip_address}
worker.lb2.port=8091
worker.lb2.lbfactor=2

#
# Loadbalancer worker
#
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=lb1,lb2

注意したいのが,"worker.list".以前は,ここにロードバランスで使用するworker名を列挙していたのだが,
現在はbalancerのworker名のみ記述するように変更になったようだ.
なお,mod_jk1.2.7以降balanced_workersディレクティブは,balance_workersディレクティブに変更されている.
また,workerで使用するホスト名の指定も可能な限りIPアドレスで指定する方が良い.(DNSのlookupを行った場合,
レスポンスにかなり影響が出る."localhost"はDNSのlookupを行わないため問題ない)

httpd.conf
JkMount /servlets-examples/* loadbalancer
JkMount /jsp-examples/* loadbalancer

使用するworkerをloadbalancerのものに変更.

server.xml
Server1,Server2のserver.xmlのJKConnector portの部分をそれぞれ修正し,workers.propertiesの各workerのport番号と一致させる.

Apache/Tomcatを再起動.
ちゃんとバランシングされているかどうかを確認するため,各サーバのコンテンツファイルにマーキングして確認すると良い.
Windows/Linuxでバランシングすると,2:1の割合でWindowsのサーバに振り分けられる...現在解析中.
→どうやら,"lbfactor"の値に応じて振り分けられるみたい.今回はLinux側1,Windows側2と設定していたため,2:1の割合でバランシングされている模様.
でも,両方とも同じ値にしてもラウンドロビンでバランシングしてくれない...バグ?もうちょっと調べます.