Session 丢失(会话不同步)
方案:负载均衡器配置“会话保持”(改动最小,见效最快)
无需改动后端代码或搭建 Redis,直接在负责负载均衡的服务器(Nginx 或 HAProxy)上做手脚。
1. Nginx 方案
IP 哈希(
ip_hash):根据客户端 IP 计算哈希值,只要该 IP 不变,就永远固定转发到同一台 Web 服务器。Nginx
upstream web_cluster { ip_hash; server 192.168.1.11:80; server 192.168.1.12:80; }注意:如果大量客户端共用同一个局域网公网 IP(例如同一校园网或公司出口),可能导致所有人都挤在同一台服务器,失去负载均衡效果。
2. HAProxy 方案
HAProxy 在七层会话保持上更灵活,原生支持 Cookie 植入绑定:
Cookie 绑定(
cookie ... insert indirect nocache):HAProxy 在用户首次访问时给响应头植入一个 Cookie(如标记分配给哪台机器),后续用户带着该 Cookie 请求时,HAProxy 总是将其定向到对应机器。代码段
backend web_servers balance roundrobin cookie SERVERID insert indirect nocache server web01 192.168.1.11:80 check cookie web01 server web02 192.168.1.12:80 check cookie web0
Session 丢失(会话不同步)
https://originspace.work/archives/session-diu-shi-hui-hua-bu-tong-bu
评论