学到这里了,刚刚开始也完全没弄懂.
根据我的理解,这里涉及到了设计思路的问题
------------
Cookie由服务器端创建,然后返回客户端,由客户端保留!
当然你可以在服务器端设置cookie相关设置
客户端的下次访问带着Cookie!!
Cookie中一般带着账户密码 sessionid这些数据,
后端服务器会检查这个Cookie中的sessionid是否有值,如果有的情况下就直接匹配访问了!
没有的话那么就会重新生成一个sessionid由服务器响应回去
理解上面这个之后 再看Nginx 这个是用在多个服务器的时候,是一个比较好用的反向代理服务器
总而言之就是可以当成分配者,由他决定去哪个服务器
Nginx中有负载均衡的配置 ,假设按照的默认轮询的方式进行分配的话,两个请求比较难进入到同一个服务器中 ,就算你前一次请求登陆的时候,服务器1给你生成了sessionid,但是下一次请求的时候,进入到另外一个服务器2中,这时这样就会重新生成sessionid .就会产生上面所说的,后端服务器找不到原有的sessionid 从而一直在创建sessionid 原有的sessionid消失!!!
在项目中登陆失败有可能就是这样的原因!
因为在登录验证的时候首先要输入密码发送请求验证登陆,然后将结果返回前端,如果成功然后才进行跳转
在跳转的时候算是另外一次请求了!所以就会出现访问不同服务器的问题 ,出现session丢失的现象
解决方法一:可以采用IP绑定的方式进行负载均衡! (ip_hash)
解决方法二:暂时没有,后面学了再写