Linux环境下,nginx proxy_pass tomcat之后,session失效,求助大神。-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Linux环境下,nginx proxy_pass tomcat之后,session失效,求助大神。

落地花开啦 2016-06-03 16:28:49 2869

生产环境如下:
centos 6.5
nginx 1.8
tomcat7
redis3
mysql5.6
在上面跑了一个web应用,使用的是apache的shiro做为登陆及权限验证!用nginx proxy_pass 到tomcat跑java。
nginx配置如下:
screenshot
在tomcat里也配置了虚拟主机,跑的是8080。配置如下:
screenshot
这样的配置照理来说应该是可以的,并且确定也是可以的。唯一的一点就是,session的失效。用户在登陆后,显示登陆成功,系统正常跳转至后台首页,问题出现在这差不多1S的时间内,用charles、谷歌浏览器查看,都正常生成cookie,路径也正常,如下图
screenshot
screenshot 在跳转到后台之后,shiro马上就认证失败了。就跳回到登陆页面。这一切,在windows下面是完全没有问题的。都是正常工作的。

我也查了很多的资料,很多的方案说是tomcat的session存储机制问题,在nginx代理之后,会出现session丢失的现象,于是我把session存放到了redis内存服务器下。配置如下:
screenshot
并且能拿到session序列化到redis里的值
screenshot
我已经想不到有什么东西会导致session失效了,如果有知道的大神,请麻烦帮我看一下。谢谢。

nginxsession失效 linuxtomcatsession失效 linuxsession失效 ssh失效 linuxtomcat失效
分享到
取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 19:26:48

    proxy_cookie_path ~*^/.* /;

    在你的location中加上这个试一下

    1 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

相似问题
最新问题
推荐课程