开发者社区> 问答> 正文

使用SpringSecurity做权限控制的系统,碰到session共享的问题

最近在玩nginx+msm+tomcat,想给系统做负载均衡和集群时,发现session无法共享。现象就是,负载均衡情况下,A浏览器访问登录页面,输入账号密码,点击提交后,闪一下,然后又返回到登录页面,我后台查了一下,请求是正常发出的,然后也接收到后台账号密码的返回提示;然后发现,请求的cookie和发送的cookie不一样,调用的是两台不一样的服务器,我个人猜测是session没有共享!发现后台报了一个错,是关于springSecurity的
[project ECG] time=2015-04-10 14:10:16,874
[org.springframework.security.event.a uthentication.LoggerListener]-[WARN] Authentication event InteractiveAuthenticationSuccessEvent: ECG004; details: org.springframework.security.ui.WebAuthenticationDetails@3bcc: RemoteIpAddress: 191.0.0.46; SessionId: AF169717B397266AE25D2B5FFF6BA8C3-n1.tomcat_48
希望有成功部署的前辈们,给点提示
问题补充:如果是nginx使用的是ip_hash的方式的话,这样的确是正常,只是,这样子只是负载均衡,并不能做到session共享,也就不能做到某一台服务器down掉了,然后该台服务器请求无缝连接到其他服务器

展开
收起
落地花开啦 2016-06-01 15:33:43 6757 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    nginx使用sticky模块来进行负载均衡,根据session判断,可以解决这个问题

    2019-07-17 19:23:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
安全机制与User账户身份验证实战 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载