前置き
apacheとtomcatをAJP連携させた際に、セッションIDが維持されない現象に遭遇しております。
やりたいこと
apacheに対するhttp://www.hoge.com/
以下へのリクエストをAJP連携したtomcatに飛ばす。
その際、セッションが正しく維持されること。
前提条件
AJP連携の設定は、httpd.confとは別に下記のファイルにLocationタグを掘って記載しています。
- ファイル名:
/etc/httpd/conf.d/mod_ajp_proxy.conf
- 設定内容:
<location /> ProxyPass ajp://localhost:8009/TestApp/ </location>
※ 補足①:TomcatにはTestApp
という名称のアプリ(war)を配備しています。
※ 補足②:上記設定でhttp://www.hoge.com/
へアクセスした際の挙動は、TestApp
のTopページが表示され、AJP連携ができていることを確認しております。しかし、Google開発者ツールでCookieを確認すると、JSESSIONID
が入っておらず、セッション維持ができておりません。
試したこと①
このサイト を参考に、アクセス用のURLをWebアプリケーション名と完全に一致させる というやり方を試してみました。
mod_ajp_proxy.conf
の設定
<location /TestApp> ProxyPass ajp://localhost:8009/TestApp/ </location>
これで「http://www.hoge.com/**TestApp**」のようにアクセスすると、
JSESSIONID
がCookieに設定され、他の画面に遷移してもセッションが維持されることを確認しました。
しかし、「http://www.hoge.com/」でアクセスできるようにしたいため、以下へ続きます。
試したこと②
このサイト と現象が同じため、参考にさせていただいております。
- 以下の設定は、サイトからの引用です
<Location /tomcat/> ProxyPass ajp://localhost:8009/ keepalive=on ProxyPassReverse ajp://localhost:8009 ProxyPassReverseCookiePath / /tomcat/ </Location>
この方は、apacheに対する「http://www.hoge.com/**tomcat/**」以下へのリクエストをAJP連携したtomcatに飛ばす、という要件で設定をされております。
私の場合は、「http://www.hoge.com**/**」以下へのアクセスで、AJP連携したtomcatに飛ばす、という要件です。
私の要件を踏まえて、読み替えながらいろいろ設定したのですが、頭がこんがらがってきて質問をさせていただいた次第です...。
すみませんが、何卒よろしくお願い申し上げます<(_ _)>
回答2件
あなたの回答
tips
プレビュー