Apache代理请求session无法保持

2 篇文章 0 订阅

问题: 通过Apache代理请求从外网进入开发内网,因外网访问路径与内网不统一,使得Apache重写JSESSIONID,使得每次请求新建会话,客户端与服务端会话无法保持

解决方法:

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值