配置session共享失败 多tomcat+redis+nginx

合取 发布于 2015/12/02 10:55
阅读 1K+
收藏 0
配置多个服务器上的tomcat共享session,  按照网上的参考, 安装了redis2.8.3, 在tomcat的context.xml文件中也添加了必要参数. 一开始的时候, 发现报错. 然后把放入session的user实体类添加了序列化操作, 就可以使用了.  但是发现, 登录nginx和分别访问其它两个处理请求的服务器ip的session id 不一样.就是说是3个不同的session. 但是在nginx上的请求又是两个tomcat都在处理.  这个是什么原因呢? 还有就是, 登录nginx的时候,第一次登录,会发现检测不到登录状态, 也就是检测不到session里面有user,然后跳转回到登录页面, 第二次登录就可以了.  求教大家,这是什么原因? 该怎么解决呢?
加载中
0
z
zouhao23

我这边有另外一种方式处理负载均衡(不需要使用到session),楼主可以参考下

每个请求都需要携带一个token到后端进行验证,token代表了用户的信息,这个token是在登录的时候获取的,如果是PC,则存储在cookie里面,如果是手机(也存在某个地方,手机我没做过,哈哈)。

合取
合取
非常感谢,以后可以使用这个方法看看.
0
YiYang
YiYang

你试试把session存储到redis上,这需要将tomcat的session manager。之前我是把session存储到member cache上。你可以参考这个链接https://github.com/jcoleman/tomcat-redis-session-manager。

合取
合取
我把session是存放到了redis上, 在 redis-cli里都能get到session, 但是效果还是必须要登录才可以, 不知道怎么回事
520920
520920
这个链接应该是tomcat7的tomcat-redis-session-manager,你那边有tomcat6的么?可以分享一下么
0
Keepuping
Keepuping
我认为可以使用自己创建Sessionid的方式,第一次访问时不存在就自己创建,同时保存到redis中,第二次及之后的访问,可以先从redis中读取,看是否存在登陆标记,如果存在就不需要再创建了。
0
AHBird丶
AHBird丶
我之前搭了一个nginx+tomcat+memcached  负载均衡 session共享。。   redis没搞过
0
bodomg
bodomg
才搞过,你这种情况,显然是redis没能够session共享。你加入相应的jar包了吗?  http://blog.csdn.net/u012186351/article/details/50608694
返回顶部
顶部