apacheでバランシングしよう
例えばサーバが沢山あるときに、webアプリをそいつら全部にデプロイして、均等にアクセスさせたいとかいうとき。
Big-IP買ったりsquid使ったりDNSラウンドロビンしたりと色々方法はあるけど、apacheでやる場合。
とりあえずフロントからバックへプロキシするときにバランシングする例。フロントへのアクセスは頑張って何とかして。
使えるかの確認
% httpd -v Server version: Apache/2.2.3 % httpd -M 2>&1 | grep proxy proxy_module (shared) proxy_balancer_module (shared) proxy_ftp_module (shared) proxy_http_module (shared) proxy_connect_module (shared) proxy_ajp_module (shared)
設定
# balancer.conf <Proxy balancer://app> BalancerMember http://192.168.0.1:81 retry=10 loadfactor=10 BalancerMember http://192.168.0.2:81 retry=10 loadfactor=10 BalancerMember http://192.168.0.3:81 retry=10 loadfactor=10 </Proxy>
後は今まで
RewriteRule ^/(.*)$ http://192.168.0.1:81/$1 [P,L] RewriteRule ^/(.*)$ http://192.168.0.2:81/$1 [P,L] RewriteRule ^/(.*)$ http://192.168.0.3:81/$1 [P,L]
とか書いてたところを
Include /path/to/balancer.conf RewriteRule ^/(.*)$ balancer://app/$1 [P,L]
で終わり。素敵。