Apache2の「ロードバランサー」機能を導入

  • 投稿日:
  • by

先日からのサーバー負荷分散の要。

ロードバランサーを導入する。

ロードバランサーというのは、英語で書けば、'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ハンドブック
Apacheハンドブック
posted with amazlet on 06.12.17
Ben Laurie Peter Laurie 大川 佳織 田辺 茂也
オライリージャパン
売り上げランキング: 36940
おすすめ度の平均: 5.0
5 Apache使い必須


Apacheセキュリティ
Apacheセキュリティ
posted with amazlet on 06.12.17
アイヴァン リスティク Ivan Ristic クイープ
オライリージャパン
売り上げランキング: 81991