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

Session 当通过apache访问时,Tomcat应用程序在页面重新加载时创建新会话,session,google-chrome,apache2,cookies,tomcat6,Session,Google Chrome,Apache2,Cookies,Tomcat6,我们有一个tomcat应用程序,它在IE7/8和Firefox中运行良好。我们现在唯一关心的浏览器是谷歌浏览器。用户可以在Firefox和IE中导航到应用程序,然后登录并执行他们需要执行的任何操作。但是,当尝试使用Chrome登录时,会话显然会在登录后立即丢失,并且当经过身份验证的用户尝试导航到另一个页面时,他们会跳回登录页面。这种情况经常发生 我在这里和其他地方看到了其他条目,表明可能是上下文路径造成的。我已尝试设置ProxyReverseCookiePath,但这并不能解决问题 我们的虚拟主

我们有一个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>

服务器管理员admin@email.com
ServerName subdomain.example.com
DocumentRoot/var/www
代理请求关闭
命令拒绝,允许
通融
ProxyPass/上下文/ajp://127.0.0.1:8009/context/
ProxyPass/ajp://127.0.0.1:8009/context/
#ProxyPassReverse/上下文/http://127.0.0.1:8009/context/
#ProxyPassReverse/http://127.0.0.1:8009/context/
#ProxyPassReverseCookiePath/context//
在根上下文的同一tomcat实例上部署了另一个应用程序。我已经查看了cookie中设置的JSESSIONID,它被发送回Chrome,并且在每次请求时都会更改,而IE和Firefox则没有

我在这里不知所措。欢迎任何意见


我们使用tomcat 6.0.23以及apache 2.2.14作为参考:通过在根上下文路径部署应用程序并从代理语句中删除上下文路径,问题得到了解决

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

不需要其他任何东西。

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

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

没有其他需要。

我在Tomcat 5.5和Chrome 9.0.597.84上面临同样的问题(Chrome 8也有同样的效果)。你用的是什么版本?我很抱歉没有意识到有回应。不确定它是否仍然相关:我不知道我当时使用的是什么版本的Chrome。tomcat是6.0.23,apache是2.2。14@basZero:事实证明,浏览器并不总是将cookie发送到服务器,或者如果认为上下文路径不匹配,服务器将丢弃cookie。这应该可以解决问题。对我来说是这样的:ProxyPass/contextajp://127.0.0.1:8009/context/ ProxyPassReverse/context/ProxyPass/ajp://127.0.0.1:8009/context/ ProxyPassReverse/ProxyPassReverseCookiePath/context/最后一行确保写入cookie的路径是正确的。Tomcat 5.5和Chrome 9.0.597.84也面临同样的问题(铬8也有同样的效果)。您一直在使用什么版本?我很抱歉没有意识到有人回应。我不确定它是否仍然相关:我不知道我当时使用的是什么版本的Chrome。tomcat是6.0.23和apache 2.2。14@basZero:事实证明,浏览器并不总是将cookie发送到服务器,或者服务器会丢弃cookiet如果它认为上下文路径不匹配。这应该可以解决问题。对我来说是这样的:ProxyPass/contextajp://127.0.0.1:8009/context/ ProxyPassReverse/context/ProxyPass/ajp://127.0.0.1:8009/context/ ProxyPassReverse/ProxyPassReverseCookiePath/context/最后一行确保写入cookie的路径正确。