今天部署IBM的一个项目,用到了反向代理,其它一切正常,就是登录时经常session失效,郁闷了老半天了。终于在网上找到了答案。谢谢两位大神哥了
1.出处:://blog.sina.com.cn/s/blog_02e45c9b01011khc.html:
被apache mod_proxy反向代理tomcat session丢失问题折腾了两个晚上。
关键在于tomcat 中的应用context 路径是 /portal , 而外部访问 context 路径是 / , JSESSIONID 的值从浏览器经过反向代理到达tomcat时, 由于cookie时内外路径不一致, 使tomcat每次重写设置 JSESSIONID 的值,导致session丢失现象,在apache VirtualHost中需要通过 ProxyPassReverseCookiePath 指令做一个路径映射,详细如下: ProxyPreserveHost On
ProxyPass / ://localhost:8080/portal/
ProxyPassReverse / ://localhost:8080/portal/
ProxyPassReverseCookieDomain locahost www.domain.cn
ProxyPassReverseCookiePath /portal /
2.出处:://www.myexception.cn/apache/476201.html
解决apache反向代理后“session”保持不住的问题
其实很简单,但是又浪费了多少青春,大把大把的时间。
有关apache的mod_proxy模块,设置反向代理时,如果指向的是
/ -> /foo, 这个时候JSESSIONID的path会被默认设置成/foo,导致请求时不会被接受此id,造成sesssion不断被刷新,所谓的保持不住session的现象。
解决办法非常简单:
ProxyPassReverseCookiePath /foo /
唉,绕弯绕来绕去,还是要苦读manual。
因本服务器流量限制,当前阅读话题的部分内容,请登录阅读话题更多内容!
原文地址:http://my.oschina.net/u/109101/blog/97019联系客服