ApacheでReverse Proxy

未分類 Add comments

某プロジェクトにて、OpenPNEの入っているサーバにReverse Proxyでリクエストさせ、正しく動作するか検証することになった。
結構面白い事になっていたので、一応書いておく


Reverse Proxy自体は大して特殊なものではないのだが、初めて設定したこともあり、ログの出方とかいろいろオモロイことになっている。
原理的にはどういうことかというと、あるサーバAを中継点にして、その特定のディレクトリにアクセスした場合にサーバBにすべてのリクエストを投げるものだ。
具体的な使用例は、インターネット上にサーバをさらしたくない場合とかに利用される。
tomcatとかのAPサーバを使っている場合もこれと同じような感じだ。
通常のHTMLとかならなんら問題ないと思うのだが、OpenPNEなどのセッション情報などをやり取りする場合にはその検証が必要となるのです。
設定自体は非常に簡単。以下をhttpd.confに記載するだけ(モジュールはコンパイルしていることが前提)

ProxyRequests Off
ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar

上記よってたとえば、http://hostA.example.com/fooにアクセスした場合、http://foo.example.com/barに送られる。
ブラウザに表示されるURLは、http://hostA.example.com/fooだが、表示されるHTML、画像、そしてプログラムなどはhttp://foo.example.com/bar以下のものが表示される。
この際に/fooを/に書き換えるとちょっとした珍事が起こる(ナイショ)
それから、飛ばされている先のアクセスログは、飛ばしている側のIPがアクセス元となるので、ログ解析の材料となるのは飛ばしている側のログを使うことになる。
ちょっとトリッキーだな。
ちなみにこの設定によりOpenPNEが動かないことはなく、今のところ問題なく動いている。

Similar Posts:

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン