忘れた頃にハマりそうなので備忘録。
DSOの時はmod_proxy_http.soも忘れないように
mod_proxy.soとmod_proxy_balancer.soだけじゃダメだった。良く考えればBalancerMemberでhttpに振り分けるんだから当然か。
リバースプロキシさせないディレクトリのProxyPassの位置
画像のディレクトリとか、直接そのサーバに応答させたいディレクトリの設定。ProxyPassの前に書いとかないとダメみたい。mod_jkでいう、JkUnmount。
- 正
ProxyPass /images ! ProxyPass / balancer://lbcluster/
- 誤
ProxyPass / balancer://lbcluster/ ProxyPass /images !
バックエンドのVirtualHostに振り分けたいとき
IPで指定すると(VirtualHostの一番上に書かれてる設定でない限り)任意のVirtualHostに振り分けれない。/etc/hosts、DNSなどで設定しといて、ホスト名で書く。
# BalancerMember http://10.0.0.1/ loadfactor=10
BalancerMember http://local.exmaple.com/ loadfactor=10
もっとまともな解決法がありそうな予感。ドキュメント読まなければ。
さらに追記
受け付けたリクエストのHostヘッダ名をバックエンドのサーバに送る場合は
ProxyPreserveHost On
としておく。これでバーチャルホストしてても大丈夫。