文章

Nginx 有哪些负载均衡策略?

Nginx 有哪些负载均衡策略?

Nginx 有哪些负载均衡策略?

负载均衡,即是代理服务器将接收的请求均衡的分发到各服务器中。

Nginx 默认提供了 3 种负载均衡策略:

1、轮询(默认)round_robin

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

2、IP 哈希 ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 共享的问题。

当然,实际场景下,一般不考虑使用 ip_hash 解决 session 共享。

3、最少连接 least_conn

下一个请求将被分派到活动连接数量最少的服务器

通过 Nginx 插件,我们还可以引入 fair、url_hash 等负载均衡策略。

另外,我们还可以配置每一个后端节点在负载均衡时的其它配置:

plain text weight=1; # (weight 默认为1.weight越大,负载的权重就越大) down; # (down 表示单前的server暂时不参与负载) backup; # (其它所有的非backup机器down或者忙的时候,请求backup机器) max_fails=1; # 允许请求失败的次数默认为 1 。当超过最大次数时,返回 proxy_next_upstream 模块定义的错误 fail_timeout=30; # max_fails 次失败后,暂停的时间

详细的,可以再看看 《Nginx 官方文档 —— 使用 Nginx 作为 HTTP 负载均衡》 文章。

Nginx 如何实现后端服务的健康检查?参见 《Nginx 负载均衡中后端节点服务器健康检查的操作梳理》 文章。

方式一,利用 nginx 自带模块 ngx_http_proxy_module 和 ngx_http_upstream_module 对后端节点做健康检查。方式二,利用 nginx_upstream_check_module 模块对后端节点做健康检查。

推荐使用。

本文由作者按照 CC BY 4.0 进行授权