同IP不同端口访问的session冲突问题

今天在测试访问同一个ip,不同端口的两台服务器出现如下问题,两台服务器都进行了spring-security的安全权限配置,使用Ip访问登录了A服务器后,再使用同一个ip访问B服务器,两个服务器对应不同的端口,此时重新向A服务器发送任意请求,A服务器跳转到对应无权页面(意思是用户已经认证的信息从session和cookies中无法找到了,实际上是被B的信息覆盖掉了),查了一些资料,发现原因是下面:

一个服务器上搭建了多个tomcat或者weblogic,端口不一样,同时启动访问时session丢失。如:A,B两个服务,在浏览器中登录访问A后,当前打开的浏览器上在开一个选项卡访问B服务后,回过来点击访问A时session丢失,需要重新登录A才可以访问。经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失。 如果IP不同,则不会发生这个问题。IP相同的两个session对应的cookie是一样的,而不幸的是sessionID就保存在cookie中,这样先访问A,再访问B的时候,B的sessionid会覆盖A的sessionid。这个事情没办法解决,所以你不要搞两个端口,最好是搞两个IP。原来都是cookie惹的祸,它不会区分端口,造成这多个站点不断的后来的覆盖前面的,从而造成session的丢失。

 

我的解决方法是:

(1)更改了hosts文件

将本地的ip,分别映射到不同的域名

127.0.0.1 quchu.manage.com

127.0.0.1 quchu.customer.com

(2)使用nginx将不同服务器的端口进行映射(配置端口映射自行百度)

最后成功解决问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值