6. Nginx极速版-负载均衡
负载均衡策略
- 轮循机制 (
round-robin)——默认机制,以轮循机制方式分发。 - 最小连接 (
least-connected)——将下一个请求分配给活动连接数最少的服务器(较为空闲的服务器)。
upstream talebook-apps {
least_conn;
server localhost:8120;
server localhost:8121;
}
请注意,使用轮循机制或最少连接的负载平衡,每个客户端的请求都可能分发到不同的服务器。不能保证同一客户端将始终定向到同一服务器。
==在登录页登录成功了,但是后续的请求走到其他机器上了,导致无法正常访问(被限制了)==
ip_hash: 客户端的 IP 地址将用作哈希键,来自同一个 ip 的请求会被转发到相同的服务器。
upstream talebook-apps {
ip_hash;
server localhost:8120;
server localhost:8121;
}
此方法可确保来自同一客户端的请求将始终定向到同一服务器,除非此服务器不可用。
权重(能者多劳)
![[image-20230816232405223.png]]
upstream talebook-apps {
server localhost:8120 weight=3;
# 不设置默认为1 也就是1/4的概率到下面这个服务器上
server localhost:8121;
}
健康检查
在反向代理中,如果后端服务器在某个周期内响应凭败次数超过规定值,nginx 会将此服务器标记为失败,并在之后的一个周期不再将请求发送给这台服务器。
通过 fail_timeout 来设置检查周期,默认为 10 秒。
通过 max_fails 来检查失败次数,默认为 1次。
在以下示例中,如果 NGINX 无法向服务器发送请求或在 30 秒内请求失败次数超过 3 次,则会将服务器标记为不可用 30 秒。
upstream talebook-apps {
server localhost:8120 max_fails=3 fail_timeout=30s;
# 不设置默认为1 也就是1/4的概率到下面这个服务器上
server localhost:8121;
}
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果