最新消息:欢迎加入小松的QQ群一起讨论一起学习,搜索页面修改成lua+ElasticSearch,使用php这个页面速度相对慢一点,优化之后速度杠杠的,如有问题请加群联系我

nginx负载均衡导致session错误

Nginx 42浏览 0评论

在最近做的项目遇到一个坑,需求如下,到我的订单的时候判断了用户是否登录,如果没有登录就跳转到登录页面,登录之后在跳转到订单列表,如果登录就打开订单列表。很多需要登录的页面都加了这个规则,为了方便我把登录之前的页面保存到session,这样登录之后就可以根据session保存的url跳转到登录之前的页面

问题

正式环境里,登录之后没有跳转到之前的页面,在测试服务器上测试了一下这个BUG,不存在这个问题

问题原因

我们的服务器做了负载均衡,问题出现之后,就问了运维,负载均衡的规则是什么,默认情况下nginx默认规则为轮询,运维的回复是ip_hash,花了一个多小时,检查我的代码,最后实在是没有办法,就在线上测试了一下,结果发现session,刷新一下有,在刷新一下就没有,于是让运维检查负载均衡的规则,发现没有指定ip_hash,用了轮询的方式

解决方式

方法一

添加负载均衡为ip_hash

upstream resinserver{
    ip_hash;
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
}

方法二

把session保存到redis里
【推荐阅读:wordpress session保存到redis

QQ交流群:136351212(满) 455721967

如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
转载保留版权:小松博客» nginx负载均衡导致session错误
本文链接地址:https://www.phpsong.com/3404.html

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
木有头像就木有JJ!点这里按步骤申请Gravatar头像吧!