配置多个服务器上的tomcat共享session, 按照网上的参考, 安装了redis2.8.3, 在tomcat的context.xml文件中也添加了必要参数. 一开始的时候, 发现报错. 然后把放入session的user实体类添加了序列化操作, 就可以使用了. 但是发现, 登录nginx和分别访问其它两个处理请求的服务器ip的session id 不一样.就是说是3个不同的session. 但是在nginx上的请求又是两个tomcat都在处理. 这个是什么原因呢? 还有就是, 登录nginx的时候,第一次登录,会发现检测不到登录状态, 也就是检测不到session里面有user,然后跳转回到登录页面, 第二次登录就可以了. 求教大家,这是什么原因? 该怎么解决呢?
我这边有另外一种方式处理负载均衡(不需要使用到session),楼主可以参考下
每个请求都需要携带一个token到后端进行验证,token代表了用户的信息,这个token是在登录的时候获取的,如果是PC,则存储在cookie里面,如果是手机(也存在某个地方,手机我没做过,哈哈)。
非常感谢,以后可以使用这个方法看看.你试试把session存储到redis上,这需要将tomcat的sessionmanager。之前我是把session存储到membercache上。你可以参考这个链接https://github.com/jcoleman/tomcat-redis-session-manager。
我把session是存放到了redis上,在redis-cli里都能get到session,但是效果还是必须要登录才可以,不知道怎么回事这个链接应该是tomcat7的tomcat-redis-session-manager,你那边有tomcat6的么?可以分享一下么我认为可以使用自己创建Sessionid的方式,第一次访问时不存在就自己创建,同时保存到redis中,第二次及之后的访问,可以先从redis中读取,看是否存在登陆标记,如果存在就不需要再创建了。我之前搭了一个nginx+tomcat+memcached 负载均衡session共享。。 redis没搞过才搞过,你这种情况,显然是redis没能够session共享。你加入相应的jar包了吗? http://blog.csdn.net/u012186351/article/details/50608694版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。