当通过apache访问时,Tomcat应用程序在页面重新加载时创建新会话

时间:2010-08-10 13:46:02

标签: session google-chrome apache2 cookies tomcat6

我们有一个tomcat应用程序,可以在IE7 / 8和Firefox中正常运行。我们遇到问题的唯一浏览器(我们现在关心的是)谷歌浏览器。用户可以正常导航到应用程序并登录并在Firefox和IE中执行他们需要做的任何事情。但是,在尝试使用Chrome登录时,会话显然在登录后立即丢失,并且当经过身份验证的用户尝试导航到另一个页面时,他们会回到登录页面。这种情况一直发生。

我在这里和其他地方看到过其他条目,表明上下文路径可能是罪魁祸首。我已经尝试设置ProxyReverseCookiePath,但这不能解决问题。

我们的虚拟主机配置如下:

<VirtualHost xxx.xxx.xxx.xxx:80>
    ServerAdmin admin@email.com
    ServerName subdomain.example.com

    DocumentRoot /var/www

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>


    ProxyPass /context/ ajp://127.0.0.1:8009/context/
    ProxyPass / ajp://127.0.0.1:8009/context/
    #ProxyPassReverse /context/ http://127.0.0.1:8009/context/
    #ProxyPassReverse / http://127.0.0.1:8009/context/
    #ProxyPassReverseCookiePath /context/ /

</VirtualHost>

在ROOT上下文中,在同一个tomcat实例上部署了另一个应用程序。我查看了在cookie中设置的JSESSIONID,它被发送回Chrome并且每次请求都会更改,而不适用于IE和Firefox。

我在这里不知所措。欢迎任何想法!

我们正在使用tomcat 6.0.23以及apache 2.2.14

1 个答案:

答案 0 :(得分:1)

供参考:通过在根上下文路径部署应用程序并从代理语句中删除上下文路径来解决问题。

ProxyPass /context/ ajp://127.0.0.1:8009/
ProxyPass / ajp://127.0.0.1:8009/

不需要其他任何东西。