Apache 2.2虚拟主机+ Tomcat 7应用程序

时间:2013-01-29 19:28:09

标签: apache tomcat tomcat7 virtualhost ajp

我在同一台计算机上安装了一台 apache服务器和一台 tomcat 7 服务器。 apache服务器使用并配置启用虚拟主机,因为它应该服务于多个php网站。 但是,我们还需要提供一些tomcat应用程序,因此我们需要配置ajp连接器。

一切顺利,我已成功配置多个服务于tomcat应用程序的apache虚拟主机,但我只有一个问题:

通过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 webserver包含虚拟主机:

<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会话没有通过代理工作。我怎样才能使它工作?我的配置有问题吗?

1 个答案:

答案 0 :(得分:8)

所以解决方案是为apache添加另一个指令VHost:

ProxyPassReverseCookiePath /testapp /

这样,cookie的标题不会被破坏,tomcat会看到会话正常。