リバースプロキシ

最終更新日時:2009-03-31 17:56:45
Apache

リバースプロキシとは


リバースプロキシ(reverse proxy)とは、あるサーバへのリクエストを代理として受け取り、そのサーバへ中継するような仕掛けのことを言います。
その様が、通常の内→外の中継であるプロキシの逆であることからリバースプロキシと呼ばれています。
Apacheではmod_proxyを使うことで、このリバースプロキシ機能を使うことが出来ます。

設定例


例えば、/xxx/ にマッチするようなリクエストを全て http://xxx.xxx/xxx/ 以下の対応するURLにリバースプロキシする場合には httpd.conf で以下のように設定します。

 ProxyPass         /xxx/ http://xxx.xxx/xxx/ 
 ProxyPassReverse  /xxx/ http://xxx.xxx/xxx/


上記の ProxyPassReverse はリバースプロキシ先でリダイレクトされた際に Location ヘッダを適切に書き換えるための設定です。

また、mod_rewrite を使用してリバースプロキシすることも出来ます。
上記と同じ動作であれば、以下のようになります。

 RewriteEngine on
 RewriteRule       ^/xxx/(.*)$ http://xxx.xxx/xxx/$1 [P]
 ProxyPassReverse  /xxx/       http://xxx.xxx/xxx/


mod_rewrite の P オプションは、内部的には mod_proxy を使用しているせいかい、ProxyPassReverseは、mod_rewrite の P オプションでも正常に使用できるようです。

お問い合わせは 掲示板 にて。