折角 mongrel_cluster でRailsアプリケーションを並列稼動させるように出来た(mongrel_cluster とそのサービスの自動起動 - Rubyとか Illustratorとか SFとか折紙とか)ので、バランサーさせてやりたい。あと、https接続してるとリダイレクト(redirect_to)の時にSSLが外れてしまいがちなのでその辺も何とかする。
- 参考
- http://wota.jp/ac/?date=20070605#p01
- mod_proxy_balancer - Apache HTTP サーバ バージョン 2.2
- mod_headers - Apache HTTP サーバ バージョン 2.2
とはいっても要は設定ファイルだ。
[2245] cat /etc/apache2/sites-available/proxy
ProxyPass /photo balancer://photo ProxyPassReverse /photo balancer://photoRequestHeader set X_FORWARDED_PROTO 'https' BalancerMember http://192.168.<アドレス>:3101/photo BalancerMember http://192.168.<アドレス>:3102/photo BalancerMember http://192.168.<アドレス>:3103/photo SetHandler balancer-manager Order Deny,Allow Deny from all Allow from 192.168.<アドレス(範囲)>
Proxy用の設定ファイルをどこに置くかは前に少し議論した(Apache2 での Proxy設定 - Rubyとか Illustratorとか SFとか折紙とか)。
あとは、RequestHeader の項目が上記リダイレクト対策(headersモジュール必要)。Location /balancer-manager の項目がバランサーの状態表示(statusモジュール必要)、Deny、Allow のアドレス範囲の書き方注意(Allow)。バランサー自体には proxy_balancerモジュールが必要でそれに伴って proxy系の幾つかのモジュールも必要になる、a2enmod宜しく。
でもって、sites-available/proxy有効化には a2ensiteなんだけども既にやってるか。
何れにせよ適宜 apache2再起動(或はリロード)
本当は全体(除バランサーマネージャ)を VirtualHost とか Location とか Directory で囲ってやらないといけないのだけど、その辺はまあ。(というかこのまんまだと、リダイレクトのタイミングで全部(元が http だったとしても) https になります、いいのかな)