Apache 2.2.0 + mod_proxy_balancer
Apache 2.2.0 がついにリリースされまして、かねてから期待されていた mod_proxy_balancer が安定版で使えるようになりました。mod_proxy_balancer はその名のとおり Apache でロードバランスするための proxy モジュールです。詳しい解説は yappo さんがしてくれてるのでそちらを。
実は mod_proxy_balancer 使ってみるかーと思って Apache 2.2.0 をインストールしようとしたらいきなり躓きました。APR 1.2.0 が入ってないから駄目だよ! と configure に叱られまして、でも APR 1.2.0 って Apache 2.2.0 インストールしないと入らなくね? みたいな矛盾が発生しました。なので、まず最初に srclib にある APR をコンパイル & インストールして、その後 Apache2 のインストールという順番でやってうまくいきました。
$ cd httpd-2.2.0 $ cd srclib/apr $ ./configure $ make $ sudo make install $ cd .. $ cd apr-util $ ./configure --with-apr=/home/naoya/apr/bin/apr-1-config $ make $ sudo make install $ cd ../.. $ ./configure --prefix=/usr/local/httpd_proxy --enable-deflate \ --enable-rewrite \ --enable-proxy \ --enable-proxy-balancer \ --enable-ssl \ --with-mpm=prefork \ --with-apr=/usr/local/apr/bin/apr-1-config \ --with-apu=/usr/local/apr/bin/apu-1-config $ make $ sudo make install
こんな感じで。
Proxy Balancer はなかなか使い手もいいし、簡単な設定ですぐに使えるのがいいです。管理画面からノードの追加削除ができたりとかも便利。あと、何気に RewriteRule の中で balancer://foo が使えるのがいい。
<Proxy balancer://foo> BalancerMember http://192.168.0.1 loadfactor=10 BalancerMember http://192.168.0.2 loadfactor=10 BalancerMember http://192.168.0.3 loadfactor=10 </Proxy> RewriteEngine on RewriteRule ^/(.*)$ balancer://foo/$1 [P]
こんな感じでもちゃんと動く。なので mod_rewrite でいろいろ複雑なことをした結果でもちゃんと balancer に任せることができる。スバラシス。