Linuxで動作するオープンソースのロードバランサであるpoundをインストール、実行してみました。
専用のハードウェアを使わなくても、十分に実用的な負荷分散が可能になります。
■環境
Linux CentOS 6.2
Pound 2.6.0
Apache 2.2.22
■ソースをダウンロード
# wget http://www.apsis.ch/pound/Pound-2.6.tgz
■ソースを解凍
# tar xvfz Pound-2.6.tgz
# cd Pound-2.6
■Configure(SSLオプション付き)
# ./configure --with-ssl=/usr/local
■Make
# make
■Install
# make install
■設定ファイル作成
# cd /usr/local/etc
# vi pound.cfg
----ファイル内容 ここから
#全体的な設定
User "www" ・・・poundを実行するユーザ
Group "www" ・・・poundを実行するグループ
LogLevel 3 ・・・ログ出力レベル。0(出力しない)~4まで
Alive 60 ・・・バックエンドサーバの障害を検知する間隔(秒)
Daemon 0 ・・・foreground実行のとき0, daemon実行のとき1
#Poundサーバの設定
ListenHTTP
Address 192.168.11.194 ・・・poundサーバを実行するIPアドレス
Port 80 ・・・poundサーバが使用するポート
End
#バックエンドサーバの設定
Service
BackEnd
Address 192.168.11.195 ・・・バックエンドサーバ1の情報
Port 80
Priority 6 ・・・優先度(1~9)
End
BackEnd
Address 192.168.11.196 ・・・バックエンドサーバ2の情報
Port 80
Priority 4 ・・・優先度(1~9)
End
End
----ファイル内容 ここまで
上記設定は、192.168.11.194でpoundサーバを実行し、
バックエンドサーバに192.168.11.195, 192.168.11.196
を指定した例です。
■Pound起動チェック
# pound -c -v
■Pound起動
# pound
poundを起動した状態で192.168.11.194にWEBブラウザからアクセスすると、
6:4の割合で192.168.11.195と192.168.11.196に振り分けて転送されることが
確認できます。
セッション毎にサーバを振り分けたり、SSL通信の設定もできるようなので、
色々と試してみたいと思います。
(参考)
http://blog.mylab.jp/20090321.html
http://php.y-110.net/wiki/index.php?%A5%ED%A1%BC%A5%C9%A5%D0%A5%E9%A5%F3%A5%B5%A1%A7Pound