mode_proxy_balancerとかの設定

もうあまり考えることなく、設定すりゃいいやって思ってたんだけど、意外にハマりました。

AddOutputFilterByType DEFLATE text/html text/plain text/xml

NameVirtualHost *:80
<VirtualHost *:80>
  ServerName www.ホスト名
  ServerAdmin webmaster@localhost

  RequestHeader set X_FORWARDED_HOST 'www.ホスト名'

  DocumentRoot /home/bar/capistrano/bar/current/public
    <Directory /home/bar/capistrano/bar/current/public>
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
        <FilesMatch "\.(js|css)$">
            SetOutputFilter DEFLATE
        </FilesMatch>
    </Directory>

  <IfModule mod_proxy.c>
      <Location /balancer-manager>
        SetHandler balancer-manager
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
      </Location>
      ProxyRequests Off
      ProxyPass /javascripts !
      ProxyPass /stylesheets !
      ProxyPass /images !
      ProxyPass /404.html !
      ProxyPass /500.html !
      ProxyPass / balancer://cluster/
      ProxyPassReverse / balancer://cluster/
      ProxyPreserveHost On
      <Proxy balancer://cluster/>
        BalancerMember http://127.0.0.1:8000 loadfactor=20
        BalancerMember http://127.0.0.1:8001 loadfactor=20
        BalancerMember http://127.0.0.1:8002 loadfactor=20
      </Proxy>
  </IfModule>
</VirtualHost>

つかっているモジュールは、mod_deflate, mod_proxy, mod_proxy_balancerなんですが、
ハマったのはモジュールではなく、単なる権限の設定。/home/bar/capistrano/bar/current/public/stylesheets にあるcssが403になっちゃって、ちゃんと権限あるじゃん、apacheはbarグループにも追加してあるし!とか悩んでたら、単に/home/bar がグループからアクセスできないだけー。何やってんだ俺。

$ sudo /usr/sbin/getenforce
Disabled

とか返ってきてるからよくあるSELinuxハマりパターンでもないので余計に悩みました。


なんか面倒なので、IfModuleとか書かなかったっす。