nginx把同一用户的请求分发到了不同的服务器,如果不做处理,就会导致session丢失。
1、粘性IP:
在nginx配置文件中,增加配置, 对IP进行HASH后,散列到服务器。
这个实现最简单。但对于前端部署了SBC的,或者很多请求都是从某一个外网网关过来的,就没用了。而且对于app会切换wifi变ip的,也不好用。
2、服务器Session复制
<1> 在 tomcat的web.xml中配置为集群模式,
<2> 在tomcat的server.xml中配置集群信息。
配置后,就可以自动复制session了。
缺点是每台服务器上都要保存全量的session信息,在服务器多的情况下,基本不可用。但开发简单,在只有两三台服务器的时候,是可以的。
具体配置如下:
3、session共享配置
原理:
springboot整合redis使用nginx实现负载均衡实现session共享
https://blog.csdn.net/eumenides_/article/details/78390837?locationNum=4&fps=1