当前位置:首页 > 开发 > 互联网 > 正文

nginx + tomcat 导致session丢失的问题

发表于: 2014-07-24   作者:030710314   来源:转载   浏览:
摘要: niginx 在做反向代理的时候,如果代理的目录地址和用户访问的目录地址不在同一个层级下的时候,即   server { listen 80; server_name www.bzf.com; location / { proxy_pass http://127.0.0.1:8090/sso; } }   如上所示,若

niginx 在做反向代理的时候,如果代理的目录地址和用户访问的目录地址不在同一个层级下的时候,即

 

server {
   listen 80;
   server_name www.bzf.com;
location / {      
        proxy_pass http://127.0.0.1:8090/sso;
}
}

 

如上所示,若用户访问 www.bzf.com,则会被nginx代理到本地8090端口下的sso项目下,

tomcat是通过cookie中的JsessionId来判断是否是一个新用户的,使用上述代理方式时,tomcat会将JsessionId写入www.bzf.com域名下的/sso路径下面。

 

用户下次再访问 www.bzf.com 的时候,发送给服务器的请求拿不到 /sso 路径下的 JsessionId,因此tomcat 会一直认为是一个新用户,这从/sso 路径下的 JSessionId会一直变化也可以看到。

 

上述分析表明,我们要让用户拿到它上次写入的JsessionId才可以,因为用户访问的域名是 www.dzf.com,这我们不能改变,因此应改变保存JSessionId的cookie的路径,将该路径变为 “/” 即可,这可通过nginx 的 proxy_cookie_path 来设置,将 tomcat 写入的 /sso 路径下的cookie 变为"/" 路径下,添加两行代码如下:

 

server {
   listen 80;
   server_name www.bzf.com;
location / {      
        proxy_pass http://127.0.0.1:8090/sso;
        proxy_cookie_path /sso/ /;
        proxy_cookie_path /sso /;
}
}

nginx + tomcat 导致session丢失的问题

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
参考资料 1 Frameset导致Cookies和Session丢失的原因及解决办法 http://blog.csdn.net/zl_c/article/
参考资料 1 Frameset导致Cookies和Session丢失的原因及解决办法 http://blog.csdn.net/zl_c/article/
参考资料 1 Frameset导致Cookies和Session丢失的原因及解决办法 http://blog.csdn.net/zl_c/article/
参考资料 1 Frameset导致Cookies和Session丢失的原因及解决办法 http://blog.csdn.net/zl_c/article/
参考资料 1 Frameset导致Cookies和Session丢失的原因及解决办法 http://blog.csdn.net/zl_c/article/
参考资料 1 Frameset导致Cookies和Session丢失的原因及解决办法 http://blog.csdn.net/zl_c/article/
参考资料 1 Frameset导致Cookies和Session丢失的原因及解决办法 http://blog.csdn.net/zl_c/article/
来源:http://www.cnblogs.com/fish-li/archive/2011/07/31/2123191.html 阅读目录 开始 Session的
解决 Iframe跨域session 丢失问题 Posted on 2012-09-09 12:18 祥叔 阅读(370) 评论( 2) 编辑 收藏
最近在开发一个新浪微博的第三方应用的项目(http://apps.weibo.com/weilvyou),在项目中用到了ses
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号