apache + tomcat stickysession不起作用的问题

本文详细介绍了如何在使用Apache代理的Tomcat环境下,通过调整Tomcat配置和Apache代理设置,解决IE浏览器禁用Cookie的问题,确保iframe调用时的会话统一性和稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    整合ssh架构的java项目运行在tomcat6上,用apache来代理,发布了一个网站应用。发布成功后,因别的网站里iframe调用,很明显发现ie浏览器禁用了cookie。

 

   为了实现session能统一,apache中增加了stickysession。可以使用每次请求都会产生新的sessionid。


    网上找到很好的案例,可就是每次都一样。

   http://acooly.iteye.com/blog/1302903


     最后发现自己的应用在tomcat中设置为

   

<Context docBase="D:\workspace\xx\WebRoot" path="/xx" reloadable="false">
			
			</Context>

apache 配置

	ProxyRequests Off   
	ProxyPreserveHost on
	ProxyPass / balancer://tomcatcluster/ stickysession=JSESSIONID|jsessionid nofailover=Off
	#ProxyPassReverse / ajp://localhost:8009/
	<Proxy balancer://tomcatcluster/>  
	  BalancerMember ajp://localhost:8009/xx/site loadfactor=1 route=t  
	  #BalancerMember ajp://localhost:8999/hrbole/xx/site loadfactor=1 route=tomcat2  
	  #ProxySet lbmethod=bybusyness   
	</Proxy>   

最后发现,问题就出现在path上,path="/xx" 直接把cookie 的path路径改成xx,而apache 用 /根路径代理之后,tomcat 的xx目录下的引用不再认可jsessionid


Set-Cookie 	JSESSIONID=B7EACFABF5543D0E5C19155CCDC82D02.a; Path=/xx

所以,要把tomcat的path路径改成根目录,适应apache的session目录地址

<Context docBase="D:\workspace\xx\WebRoot" path="/" reloadable="false">
</Context>












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值