mod_proxy_ajpのVirtualHost連携
Apache2からはmod_jkやmod_jk2が非推奨になって、mod_proxy_ajpを使うようになりました。
設定自体も簡単になってよい感じなんですが、VirtualHostを使う時に気をつけないといけないようです。
まず、VirtualHostを使わない時の設定ですが、CentOSだと
/etc/httpd/cond.d/proxy_ajp.conf
にあらかじめファイルがあると思いますので、
こちらを、
ProxyPass /*/ ajp://localhost:8009/*/
と設定すると
http://<servername>/xxx/
でアクセスしたときにxxxのアプリにアクセスできるはずです。
mod_jkのころにころに比べると格段に楽。
また、ロードバランスもmod_proxy_balancerを使ってできるようですので、後々やってみます。
こちらがわかりやすく書いてました。
で、VirtualHostですが、「dev.mono-koubou.net」のDNSの設定を追加し、proxy_ajp.confを
<virtualhost>
ServerName dev.mono-koubou.net
ProxyPass / ajp://localhost:8009/dev/
ProxyPassReverse / ajp://localhost:8009/dev/
</virtualhost>
と設定し、Tomcatにdevアプリをディプロイするとhttp://dev.mono-koubou.netでアクセスできるはできるのですが、どうもセッションが保持されず、毎回別のsessionが生成されてしまうようです。
たぶんVirtualHostのhttpパスとajpのパスが違うためだと思ったので、ajpのほうもルートで設定してみました。
具体的にはproxy_ajp.confを
<virtualhost>
ServerName dev.mono-koubou.net
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
</virtualhost>
とし、アプリをdevではなくROOTとしてディプロイします。
この方法でセッションもきちんと保持されました。
別のやり方もありそうですが、まずはこの辺で。
Posted in Tomcat |
