Apacheで Reverse Proxy
普通のProxyは閉じたネットワークの中から外へのアクセスを代理する。
Reverse Proxyは、外からのリクエストをネットワーク内のホストへ中継する。
社内ネットワーク上にあるWebアプリケーションの、「ある機能だけ」インターネット側に見せたいといったような場合にこの Reverse Proxyが役に立つ。もちろん外に見せても差し支えないもの(きちんと認証機構を備えているなど)であることが前提だが。
Gentooの場合、/etc/conf.d/apache2の APACHE2_OPTS=行に "-D PROXY" を追加すると ApacheのProxy機能が有効になる。
上記のようにすると、/myappへのアクセスが myappserverの8080番へ転送されるようになる。内側に居るのが AJPのしゃべれるアプリケーションサーバなら Proxyじゃなくてmod_jkを使ってもっと効率の良い(とおもわれる)バイナリプロトコルで通信すれば良いのだけれどね。
ProxyPassとProxyPassReverseの違いは、返りのLocation:ヘッダに手を入れてリダイレクトの辻褄を合わせるかどうかの違いなんだけど、私の手元では何故か ProxyPassReverseがうまくいかなかった(Proxy設定自体が無視されてしまう)。うーん。
Reverse Proxyは、外からのリクエストをネットワーク内のホストへ中継する。
社内ネットワーク上にあるWebアプリケーションの、「ある機能だけ」インターネット側に見せたいといったような場合にこの Reverse Proxyが役に立つ。もちろん外に見せても差し支えないもの(きちんと認証機構を備えているなど)であることが前提だが。
Gentooの場合、/etc/conf.d/apache2の APACHE2_OPTS=行に "-D PROXY" を追加すると ApacheのProxy機能が有効になる。
<IfModule mod_proxy.c>
ProxyPass /myapp http://myappserver:8080
</IfModule>
上記のようにすると、/myappへのアクセスが myappserverの8080番へ転送されるようになる。内側に居るのが AJPのしゃべれるアプリケーションサーバなら Proxyじゃなくてmod_jkを使ってもっと効率の良い(とおもわれる)バイナリプロトコルで通信すれば良いのだけれどね。
ProxyPassとProxyPassReverseの違いは、返りのLocation:ヘッダに手を入れてリダイレクトの辻褄を合わせるかどうかの違いなんだけど、私の手元では何故か ProxyPassReverseがうまくいかなかった(Proxy設定自体が無視されてしまう)。うーん。

1 件のコメント:
mod_proxyはAJP対応だけれども。
2.2からだっけ。
ちなみにtokimiのおいらのホストはそんな設定になってる。
コメントを投稿
<< ホーム