2.5. 将 NGINX 配置为 HTTP 负载均衡器
您可以使用 NGINX 反向代理功能进行负载均衡流量。这个步骤描述了如何将 NGINX 配置为 HTTP 负载均衡器。它会根据服务器上的活跃连接的数量,将请求发送到不同服务器(发送到活跃连接数量最小的服务器)。如果两个服务器都不可用,这个过程还定义了第三个主机用于回退。
先决条件
- NGINX 已安装,如 安装和准备 NGINX 中所述。
流程
编辑
/etc/nginx/nginx.conf
文件并添加以下设置:http { upstream backend { least_conn; server server1.example.com; server server2.example.com; server server3.example.com backup; } server { location / { proxy_pass http://backend; } } }
在名为
backend
的主机组中的least_conn
指令定义了 NGINX 将请求发送到server1.example.com
或server2.example.com
,具体取决于哪个主机具有最少的活动连接数。NGINX 仅在其他两个主机不可用时使用server3.example.com
作为备份。proxy_pass
指令设置为http://backend
时,NGINX 充当反向代理,并使用backend
主机组根据该组的设置分发请求。您还可以指定其他方法,而不是
least_conn
负载均衡方法:- 不指定方法,使用轮询的方式在服务器间平均分发请求。
-
ip_hash
根据从 IPv4 地址的前三个八位字节或客户端的整个 IPv6 地址计算的哈希值将来自一个客户端地址的请求发送到同一台服务器。 -
hash
,根据用户定义的密钥(可以是字符串、变量或两者的组合)来确定服务器。用consistent
参数来进行配置,NGINX可根据用户定义的哈希密钥值向所有的服务器分发请求。 -
random
将请求发送到随机挑选的服务器。
重启
nginx
服务:# systemctl restart nginx