整合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>
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
<Context docBase="D:\workspace\xx\WebRoot" path="/" reloadable="false"> </Context>