Ramdom Entry Pickup
- デザインカプチーノっていいですね(^ー^)(BlogPet) (2006年02月18日)
- 「Google Similar」導入! (2005年04月10日)
- RPMの強制アンインストール (2006年07月25日)
- 「Tagwire」のキャッシュ化 (2006年02月04日)
- ラストサムライ(BlogPet) (2006年07月25日)
« Apacheでリバースプロキシーを導入 | メイン | メタボリックな、ひとコマ »
先日からのサーバー負荷分散の要。
ロードバランサーを導入する。
ロードバランサーというのは、英語で書けば、'Load Balancer'。
読んで字のごとく、負荷のバランスを取ってくれる訳です。
なぜこういうことになったかと言うと、「MT4i」という、ブログを携帯から見られるようにするCGIが激重なのです。。。
しかも、それに目がけて、GoogleやYahoo!などのさまざまなロボット型検索エンジンがクロールしにくるもんだから、CPUが100%に近い状態が続くときもあるのです。
ということで、自宅にあるセカンダリーのサーバー(かなりの非力ですが。。)でもメインサーバーと同様の処理をできるように設定し、httpdへのアクセス、MySQLへのトランザクションを分散させようと思った訳です。
というわけで、以下の参考URLをお手本にしながら、なんとか設定できました。
今回のターゲットは、とりあえず「MT4i」の負荷分散です。
では、設定方法をば。。。
構成的には以下のような構成になります。
[Net] → [HTTPD1] → [HTTPD2]
まず、すべてのリクエストを「HTTPD1」のマシンで受け付け、そのリクエストを、「HTTPD1」と「HTTPD2」に振り分けます。
Apacheの設定ファイル「httpd.conf」にて、mod_proxy_balancerモジュールを有効にします。
# LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
↓
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
次に同様にhttpd.confに以下のように追加します。
ProxyPass /cgi-bin/mt4i/ balancer://cluster/
<Proxy balancer://cluster/>
BalancerMember http://localhost:80/cgi-bin/mt4i-2 loadfactor=10
BalancerMember http://192.168.0.101/cgi-bin/mt4i/ loadfactor=10
</Proxy>
青文字の部分がHTTPD1、赤文字の部分がHTTPD2を指します。
「loadfactor」にて、負荷分散の振り分け度合いを調整することが出来ます。
数が多いほど、高負荷になります。
上記の設定では、同じ10ですので、同じ負荷となります。
ここで私がはまってしまった注意点ですが、(後から考えると、当たり前か。。と思うことだった。。)、HTTPD1へのBalancerMemberのURIに、その上で宣言している、「ProxyPass」と同じものを書いては行けません(^^;)。。。
結局リダイレクト?されて、すべてのリクエストがHTTPD2へ行ってしまいます(笑)
後は、BalancerMemberに記述するURIの最後のスラッシュ「/」が結構くせ者でして、これでもしばらくはまりました。結局上のような設定にしたら解決しましたが、試行錯誤してみてください(^^;)

Apache使い必須
Link HTML:
トラックバックURL: