我有三台服务器。一个用于负载平衡,另外两个用于为 Web 应用程序提供服务。如果我将我的网页用作静态站点,我的负载平衡工作正常。但是当我登录我的网页时,它没有正确响应,因为每次页面加载时它都会更改其服务器。如何在注销前不更改当前服务器的情况下执行此操作。我的负载平衡服务器配置是
upstream web_backend{
server 192.168.33.2;
server 192.168.33.3;
}
server{
listen 80;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://web_backend;
}
}
您可以使用 nginx 的会话持久化功能:
如果需要将客户端绑定到特定应用程序 服务器 — 换句话说,使客户端的会话"粘性"或 "持久"是指总是试图选择特定的服务器—— 可以使用 IP 哈希负载平衡机制。
使用 ip 哈希,客户端的 IP 地址用作哈希密钥 确定应为服务器组中的哪个服务器选择 客户的要求。此方法可确保来自同一请求的请求 客户端将始终定向到同一服务器,除非 服务器不可用。
要配置 IP 哈希负载平衡,只需将 ip_hash 指令添加到 服务器(上游)组配置:
在您的情况下,只需将ip_hash
添加到上游定义中
upstream web_backend{
ip_hash;
server 192.168.33.2;
server 192.168.33.3;
}