mod_rewriteとmod_proxyとmod_proxy_balancerを使ってリバースプロキシをする方法

apacheを再コンパイルして以下のモジュールを有効にする

# portupgrade -f www/apache22
[X] PROXY                 Enable mod_proxy
[X] PROXY_BALANCER        Enable mod_proxy_balancer
[X] PROXY_HTTP            Enable mod_proxy_http

httpd.confでモジュールをロードする

LoadModule proxy_module libexec/apache22/mod_proxy.so
LoadModule proxy_connect_module libexec/apache22/mod_proxy_connect.so
LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so
LoadModule proxy_balancer_module libexec/apache22/mod_proxy_balancer.so

コンフィグのどこかに転送先のサーバを定義する。
今回はhttpd-vhosts.confの中に書いてみた。

<Proxy balancer://backend>
BalancerMember http://www.example.com loadfactor=10
</Proxy>

ModRewriteを使ってリバースプロキシの設定をする。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/(.*)$ balancer://backend/$1 [P,L]
</IfModule>

コメントを残す