徒然なるままに

個人の備忘録を中心としたブログです

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ReverseProxyの意味がつかめておらず、無駄に設定に苦労した。


http://wiki.apache.org/httpd/TomcatModProxyHTMLを参考。

httpd.confにてモジュールがロードされているか確認。
LoadFile      /usr/lib/libxml2.so
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule xml2enc_module modules/mod_xml2enc.so


httpd-proxy.confにて
ProxyEnableをOnにして、ProxyHTMLURLMapディレクティブを追加すると以下のようになった。
ProxyRequests off
ProxyPass /tomcat/ ajp://localhost:8009/
<Location /tomcat>
ProxyPassReverse /
ProxyHTMLEnable On
ProxyHTMLURLMap http://localhost:8080/ /tomcat/
ProxyHTMLURLMap / /tomcat/
ProxyPassReverseCookieDomain localhost localhost
ProxyPassReverseCookiePath /servlet /tomcat/servlet
</Location>

ここではバックエンドサーバ内のページの「/」から始まる絶対パスと、
「http://ホスト名/」からなるリンクを変換しています。

ProxyHTMLURLMapでURLを変換しています。
ProxyHTMLURLMap fromURL toURL [R]
正規表現を使う場合、末尾にRをつけてください。


あとはこれをhttpd.confでインクルードします。
httpd.conf
<IfModule proxy_html_module>
Include /usr/local/conf/extra/httpd-proxy.conf
</IfModule>

事前にしっかりLoadModuleされていれば別に<IfModule>で囲む必要はありませんが、
このようにしておけば後から見て何のモジュール用にインクルードされたファイルなのかが分かります。
逆に、httpd-proxy.conf内でLoadModule proxy_html_moduleで読み込むなら、<IfModule>で囲んではいけません。

これでhttp://localhost/tomcat/の管理画面のリンクがhttp://localhost/tomcat/manager/等に入れ替わっていると思います。

事前にmod_proxyでリバースプロキシの設定をしている場合、
既にhttpd.confや別confファイルにProxyPassなどの指定をしていると思います。
その場合は重複になり、後から読み込んだほうが優先されるので、統合して一つにまとめたほうが良いでしょう。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://kamiyasu2.blog.fc2.com/tb.php/19-2a1d8088

kamiyasu

Author:kamiyasu

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。