Apache + mod_proxy_balancer + mongrel_cluster のApacheの設定

Apacheの設定について、忘れないようにメモ。
ちなみに環境は、こんなです。
CentOS 5.1
Apache 2.2.3
mongrel_cluster 1.1.4(たぶん)
mongrel 1.0.5(たぶん)


Apacheのmod_proxyとmod_proxy_balancerは使えるのが前提で。2.2以上だったら、たぶん大丈夫そう。
mongrel_clusterも動くようにしてあるってことで。


1./etc/httpd/conf/proxy.confを下記の内容で作成する

とりあえず↓は基本的にはオフにするみたい


ProxyRequests Off


↓も今のとこはあまり気にせず・・とりあえず書いておく。
たぶん、Deny from all とAllow from 192.168.xx.xxみたいにすれば、ここにアクセスできるIPを限定できるものだと思う。



Order deny,allow
Allow from all


で、次。↓で1行目の最初のスラッシュが、http://xxx.xx.com/ とかのこと(xxx.xx.comの部分は、設定によります。要はApacheのURL)。ここに、例えば、/sample/ とか書けば、http://xxx.xx.com/sample/ のこと。
そこへのアクセスを、balancer://mongrel_cluster/に読み替える。
2行目のは、よく分かりません。。とりあえず1行目と同じのを書いておく。


ProxyPass / balancer://mongrel_cluster/
ProxyPassReverse / balancer://mongrel_cluster/


で、さっき読み替えた部分(balancer://mongrel_cluster/)が↓の一行目に出てくる。
こう書くことで、http://xxx.xx.com/にアクセスがあると、BalancerMemberに設定したURLにアクセスすることになる(ここでは、Apacheと同じサーバにmongrel_clusterで3つ作成している状態)。
loadfactorはアクセスされる優先順位みたい。とりあえず今は全部同じにしておいた。



BalancerMember http://127.0.0.1:4000 loadfactor=10
BalancerMember http://127.0.0.1:4001 loadfactor=10
BalancerMember http://127.0.0.1:4002 loadfactor=10


最低限必要なのはたぶん↑まで。
で、追加で↓を書けば、http://localhost/balancer-managerにアクセスすることで、バランサの管理ができるみたいだけど、まだ使ってはない。。とりあえず、書いておいた。



SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from 127.0.0.1


2.proxy.confの取り込み
基本的なことなのだと思うけど、エンジニア素人な自分はこれで1時間くらい悩んだ・・
/etc/httpd/conf/httpd.confの中に↓を書かないと、proxy.confが機能しないみたい。


Include conf/proxy.conf


3.APACHEの再起動
で、↓のコマンドで再起動すれば、とりあえず使えるようになるはず。


# /etc/rc.d/init.d/httpd restart


細かいところは、まだまだいろいろ勉強しないと。