質問: ### 前提 自己学習の一環として、Java11、SpringBootによる開発を行っております。 ローカル環境では、組み込みTomcatを使用し開発をしております。 AWS環境では、EC2内にApacheとTomcatを同居させて、ajpで連携をしております。 AWS環境には **TestApp.war** という名称で、TomcatのwebAppsへ配備しております。 ### 現状 ECサイトのようなものを作っております。 ローカル環境ではセッション維持がされているのに、 **AWS環境にデプロイするとセッション維持がされなくなってしまいます。。。** 具体的には、セッションがないのでログイン画面へ戻されてしまう、という現象がおきています。 ### 実現したいこと セッションを維持できるようにしたいです。 ### 設定 ■ Apache * インストール :yumでインストール * バージョン:Apache2.4.41 * `/etc/httpd/conf.d/mod_ajp_proxy.conf` に記述した内容 ↓ ``` ProxyPass ajp://localhost:8009/TestApp/ ``` ■ Tomcat * インストール :wgetで最新版をインストール * バージョン:Tomcat9.0.34 * `/opt/apache-tomcat/conf/server.xml` に記述した内容 ↓ ``` ``` ■ 「http://IPアドレス/」へアクセスしたときの挙動 * `TestApp`のトップページが表示されます。 * Google開発者ツールでCookieを確認すると、値が何も設定されていません ### 試したこと `/etc/httpd/conf.d/mod_ajp_proxy.conf`を下記のように修正し、 ``` ProxyPass ajp://localhost:8009/TestApp/ ``` 「http://IPアドレス/TestApp」のようにアクセスし、 Google開発者ツールでCookieの中身を確認すると、 * `JSESSIONID` * `SESSION` の2つのkeyで値が入っていることを確認しました。 他の画面に遷移しても、値は持ち越せているようです。 ### 実現したいこと(補足) おそらく下記のURLの方と同じ現象だと思っています。 https://okwave.jp/qa/q6353958.html 上記の「試したこと」にも書いた通り、 アクセス用のURLをアプリケーション名と完全一致させて、 「http://IPアドレス/TestApp」へアクセスすると、 確かにセッション維持はされました。 ただ、 「http://IPアドレス/」でアクセスができて、 セッション維持もされるようにしたいと思っております。 ApacheやTomcatといったミドルウェアに疎く、なかなか実現ができません。。。 一応、設定ファイルを変更したらsystemctl restartで再起動はかけております。 何か足りない情報がございましたら、ご指摘いただければ追記を致します。 何卒宜しくお願い致します
回答: ajpの転送をlocalhostではなくアクセスしたドメインにしたら。いけない?