两个应用相互调用导致的session丢失问题
2016-08-08 11:42
309 查看
问题是这样的,有两个应用,这两个应用有相互调用关系,而且是双向调用,A会调用B,B也会调用A,且通过nginx对后台的两个tomcat进行负载均衡,结果在访问时就会不时的出现session丢失,F12查看route不停的改变,提示重新登录的错误!如果后台是单机的tomcat,则不会有上述问题。
经过不停的思考和尝试,一共思考出了两个解决方案,并且成功测试通过!
解决方案如下:
1、修改nginx负载均衡策略,由原来的sticky改为ip_hash;
2、负载均衡策略不动,还是使用sticky,只不过sticky要多些配置,如下:
upstream loadbalancer_01{
sticky name=route1;//目的是要保证两个route的name是不一样的
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
upstream loadbalancer_02{
sticky name=route2; //目的是要保证两个route的name是不一样的
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
原因分析:两个应用的负载均衡器的route的名字相同,默认都叫route,导致两个应用的route相互覆盖!
经过不停的思考和尝试,一共思考出了两个解决方案,并且成功测试通过!
解决方案如下:
1、修改nginx负载均衡策略,由原来的sticky改为ip_hash;
2、负载均衡策略不动,还是使用sticky,只不过sticky要多些配置,如下:
upstream loadbalancer_01{
sticky name=route1;//目的是要保证两个route的name是不一样的
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
upstream loadbalancer_02{
sticky name=route2; //目的是要保证两个route的name是不一样的
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
原因分析:两个应用的负载均衡器的route的名字相同,默认都叫route,导致两个应用的route相互覆盖!
相关文章推荐
- 【同一个Server Weblogic两个Domain CookieName冲突导致session失效问题】【关于WebLogic的Session丢失的问题】
- jfreechart出现ChartDeleter没有序列化问题导致session信息丢失的解决方法
- PHP关于IE下的iframe跨域导致session丢失问题解决方法
- java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题
- Websphere多个应用session相互覆盖问题解决办法
- jfreechart出现ChartDeleter没有序列化问题导致session信息丢失的解决方法
- 一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法
- IE下PHP iframe跨域导致session丢失问题的解决方法
- c++两个类相互调用需要注意的问题
- weblogic通过代理插件weblogic.servlet.proxy.HttpProxyServlet跨域访问导致session丢失问题的解决
- 跨域、跨服务器调用时候session丢失的问题总结!!!
- android的ndk下,解决两个so相互调用的问题
- 【转载】ASP.NET网站问题:删除或重命名站点下的任意目录导致站点重启(Session丢失)及解决办法
- IE下PHP iframe跨域导致session丢失问题的解决方法
- 关于ASP.NET 2.0的目录结构变化导致Session丢失的问题
- 解决访问不同的站点iframe应用session丢失(cookie丢失的问题)的问题
- IE中使用IFrame或Frameset导致session丢失的问题
- android的ndk下,解决两个so相互调用的问题
- IE8 jquery Ajax 导致Session 丢失问题解决办法
- Websphere多个应用session相互覆盖问题解决办法