某プロジェクトにて、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が動かないことはなく、今のところ問題なく動いている。
なんだか、K田氏かぁ?
リバースプロキシ好きだねぇ?。
僕は個人的に大っキライです。
信用できん!とK田氏と言い合った記憶が...
顧客環境の要件により、リバースプロキシによる運用が必要なのです。
決して興味本位、取り繕いなどの類ではありません。
念のため・・・