Nginx 的反向代理设置(四)

Nginx 的反向代理设置(三) 中,我们演示了一个如何将 Nginx 设置为内网服务的反向代理服务器和负载均衡服务器。 本文将进一步扩展案例,为负载均衡选择不同的负载分派策略。

轮询策略

Nginx 的负载均衡默认的策略就是轮询策略。因此当我们采用默认设置,如:

1
2
3
4
upstream testapp {
server app1:8080;
server app2:8080;
}

客户端发起的请求轮流由 app1 和 app2 来进行处理。

加权轮询

如果我们后端服务的处理能力不同,比如 app2 的处理能力要远高于 app1, 那这个时候用上面说到的简单轮询策略就不合适了。这个时候可以采用加权轮询的方法,将 app2 的权重增加,让它多处理一些客户的请求。 配置如下:

1
2
3
4
upstream testapp {
server app1:8080 weight=1;
server app2:8080 weight=9;
}

IP地址Hash

如果我们希望来自同一个 IP 的客户端请求尽可能的再同一台后端服务中被处理。这时我们可以采用 IP 地址 Hash 的策略,通过计算客户的 IP 地址的哈希值,然后在将哈希值映射(通常为取模的方法)为某一台后端服务器。这样,当客户的 IP 的不变是,总能由后端的同一台服务器来处理该客户端的请求。 配置如下:

1
2
3
4
5
upstream testapp {
ip_hash;
server app1:8080;
server app2:8080;
}

本文标题:Nginx 的反向代理设置(四)

文章作者:Morning Star

发布时间:2020年12月19日 - 10:12

最后更新:2021年04月16日 - 15:04

原始链接:https://www.mls-tech.info/nginx/nginx-setup-proxy-04/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。