7

同じマシンに 1 つのapache サーバーと 1 つのtomcat 7サーバーをインストールしました。apache サーバーは、複数の php Web サイトをサーバーすることになっているように、仮想ホストを有効にして使用および構成されます。ただし、いくつかの tomcat アプリケーションも提供する必要があるため、ajp コネクタを構成する必要があります。

Tomcat アプリを提供する複数の Apache 仮想ホストの構成に成功しましたが、問題は 1 つだけです。

Apache 仮想ホストを介して Java アプリケーションにアクセスする場合、セッション変数は維持されません。これは、Tomcat サーバーの 8080 ポートに直接接続する場合に完全に機能します。

各アプリケーションの Tomcat マネージャーで、Apache 仮想ホストからページが更新されるたびにセッション数が増加していることがわかります。

Java アプリケーションは、/webapps/testapp フォルダーの tomcat にデプロイされます。

Tomcat サーバー xml には、次のように記述された ajp コネクタがあります。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" 
maxThreads="300" minSpareThreads="10" enableLookups="false"
tcpNoDelay="true" tomcatAuthentication="false" URIEncoding="UTF-8" />

Apache Web サーバーには、仮想ホストが含まれています。

<VirtualHost *:80>
    ServerName testapp.com
    ServerAlias *.testapp.com
    ProxyPreserveHost on
    ProxyRequests     off
    ProxyPass / ajp://localhost:8009/testapp/
    ProxyPassReverse / ajp://localhost:8009/testapp/
</VirtualHost>

したがって、Tomcat を使用した Apache プロキシは正常に動作しています。問題は、jsp セッションがプロキシ経由で機能していないことです。どうすればそれを機能させることができますか?私の設定に何か問題がありますか?

4

1 に答える 1

8

したがって、解決策は、Apache VHost の onother ディレクティブを追加することです。

ProxyPassReverseCookiePath /testapp /

このようにして、Cookie のヘッダーが破損することはなく、Tomcat はセッションを正常に認識します。

于 2013-01-30T13:01:05.550 に答える