読者です 読者をやめる 読者になる 読者になる

特定のサブディレクトリをリバースプロキシしない書き方

わざわざmod_rewrite を使う必要が無かった。

サブディレクトリをリバースプロキシしたくないときに ! は 役に立ちます。例えば、

ProxyPass /mirror/foo/i !
ProxyPass /mirror/foo http://backend.example.com

は /mirror/foo/i を除く /mirror/foo へのすべてのリクエストを backend.example.com にプロキシします。

http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html#proxypass より引用

ということで、

DocumentRoot /path/to/rails_app/public

<Proxy *>
  Order deny,allow
  Allow from all
</Proxy>

ProxyRequests Off
ProxyPass        /images !
ProxyPass        /javascripts !
ProxyPass        /css !
ProxyPass        / balancer://cluster/
ProxyPassReverse / balancer://cluster/

<Proxy balancer://cluster/>
  BalancerMember http://127.0.0.1:3000 loadfactor=20
  BalancerMember http://127.0.0.1:3001 loadfactor=20
  BalancerMember http://127.0.0.1:3002 loadfactor=20
</Proxy>

これでhttp://d.hatena.ne.jp/mhag/#1193035548と同じ設定になる。