0

JBoss から提供される Java アプリケーションで (私にとって) 奇妙な状況に遭遇しています。

- バックグラウンド -

1) JBoss が Linux 環境にインストールされている。

説明のため、私の環境の IP アドレスは 99.999.999.99 です。

2) 環境内で、JBoss をhttp://127.0.0.1:8080で実行しています。

http://127.0.0.1:8080/APPLICATION_NAMEで到達できるいくつかのアプリケーション

3) 次のように、IP アドレスへの Apache ルーティング トラフィックがあります。

ProxyPass / http://127.0.0.1:8080/app1/
ProxyPassReverse / http://127.0.0.1:8080/app1/

ProxyPass /app2/ http://127.0.0.1:8080/app2/
ProxyPassReverse /app2/ http://127.0.0.1:8080/app2/

ProxyPass /app3/ http://127.0.0.1:8080/app3/
ProxyPassReverse /app3/ http://127.0.0.1:8080/app3/

4) 99.999.999.99 にアクセスすると、期待どおりに機能する app1 にアクセスできます (以下の問題を除く)。

99.999.999.99/app2 にアクセスすると、app2 にアクセスできます。

- 問題 -

1) app1 内に、セッションに書き込む jsp ページがあります。

_sessionTest1.jsp session.setAttribute("テスト", "テスト");

2) 問題は、この JSP を実行した後、設定されたデータがセッションに含まれないことです。

3) Apache プロキシを削除し、代わりに JBoss ルートを公開し、管理リンクと JMX コンソールも公開すると、セッションは期待どおりに更新されます。

このように構成すると、アプリケーションにアクセスする方法は次のようになります。

99.999.999.99/アプリ1

99.999.999.99 は私の JBoss ルートを示します。

4) 上記のように構成した場合、アプリケーションのセッションにアクセスできないと予想されますか?

ありがとう!

4

3 に答える 3

1

問題は、デフォルトの URL ではなく、Cookie からセッション情報を検索するように apache を構成する必要があることにありました。

于 2012-04-21T17:59:08.940 に答える
1

Apache プロキシの Jetty で同じ問題が発生しました。ルールは次のとおりです。

ProxyPass /myapp http://localhost:8080
ProxyPassReverse /myapp http://localhost:8080

https://myhost/myappへのプロキシhttp://localhost:8080。これは一般的に機能しましたが、myapp のセッションはリクエスト間で保持されませんでした。次のルールを追加すると修正されました。

ProxyPassReverseCookiePath / /myapp
于 2012-06-03T20:00:16.117 に答える
0

あなたの最初の委任勧誘状は実際には最後であるべきだと思います。Apache は URL に一致する最初のルールで停止するため、Web サーバーを介したすべてのリクエストは、一般的な / でルール 1 をキャッチします。

ProxyPass /app1/ http://127.0.0.1:8080/app1/
ProxyPassReverse /app1/ http://127.0.0.1:8080/app1/

ProxyPass /app2/ http://127.0.0.1:8080/app2/
ProxyPassReverse /app2/ http://127.0.0.1:8080/app2/

ProxyPass /app3/ http://127.0.0.1:8080/app3/
ProxyPassReverse /app3/ http://127.0.0.1:8080/app3/

ProxyPass / http://127.0.0.1:8080/app1/
ProxyPassReverse / http://127.0.0.1:8080/app1/
于 2012-04-12T14:58:32.540 に答える