うまいぼうぶろぐ

linuxとhttpdとperlのメモ

mod_proxy_balancer設定memo

忘れた頃にハマりそうなので備忘録。

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 !
追記

apacheのドキュメントに思いっきり書いてた('A`)

バックエンドの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

としておく。これでバーチャルホストしてても大丈夫。