在Nginx负载均衡的情况下session丢失的问题

学到这里了,刚刚开始也完全没弄懂.

根据我的理解,这里涉及到了设计思路的问题

------------

Cookie由服务器端创建,然后返回客户端,由客户端保留!

当然你可以在服务器端设置cookie相关设置

客户端的下次访问带着Cookie!!

Cookie中一般带着账户密码 sessionid这些数据,

后端服务器会检查这个Cookie中的sessionid是否有值,如果有的情况下就直接匹配访问了!

没有的话那么就会重新生成一个sessionid由服务器响应回去

理解上面这个之后 再看Nginx   这个是用在多个服务器的时候,是一个比较好用的反向代理服务器 

总而言之就是可以当成分配者,由他决定去哪个服务器

Nginx中有负载均衡的配置 ,假设按照的默认轮询的方式进行分配的话,两个请求比较难进入到同一个服务器中 ,就算你前一次请求登陆的时候,服务器1给你生成了sessionid,但是下一次请求的时候,进入到另外一个服务器2中,这时这样就会重新生成sessionid .就会产生上面所说的,后端服务器找不到原有的sessionid  从而一直在创建sessionid  原有的sessionid消失!!!

在项目中登陆失败有可能就是这样的原因!

因为在登录验证的时候首先要输入密码发送请求验证登陆,然后将结果返回前端,如果成功然后才进行跳转 

在跳转的时候算是另外一次请求了!所以就会出现访问不同服务器的问题 ,出现session丢失的现象

解决方法一:可以采用IP绑定的方式进行负载均衡!  (ip_hash)

解决方法二:暂时没有,后面学了再写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值