如何在Nginx中设置负载均衡?
美国、香港服务器
如何在Nginx中设置负载均衡?
04-17 来源:
在 Nginx 中设置负载均衡可以将客户端的请求均匀地分配到多个后端服务器上,从而提高系统的可用性和性能。以下是详细的设置步骤:
环境准备
假设你已经在 Ubuntu 22 系统上安装好了 Nginx,并且有多个后端服务器(例如 3 个),其 IP 地址分别为192.168.1.101、192.168.1.102、192.168.1.103,它们都运行着相同的服务。
配置 Nginx 负载均衡
编辑 Nginx 配置文件:
打开 Nginx 的主配置文件/etc/nginx/nginx.conf或者在/etc/nginx/sites-available目录下创建一个新的配置文件,这里以创建新配置文件为例。
bash
sudo nano /etc/nginx/sites-available/load_balancer.conf
定义上游服务器组:
在配置文件中添加upstream块,用于定义后端服务器组。
nginx
upstream backend_servers {
server 192.168.1.101;
server 192.168.1.102;
server 192.168.1.103;
}
上述配置中,backend_servers是上游服务器组的名称,你可以根据实际情况进行命名。server指令后面跟着的是后端服务器的 IP 地址或域名。
配置负载均衡策略:
Nginx 支持多种负载均衡策略,常见的有轮询(默认)、IP 哈希、最少连接等。
轮询(默认):按顺序依次将请求分配到各个后端服务器。上面的配置使用的就是轮询策略。
IP 哈希:根据客户端的 IP 地址进行哈希计算,将相同 IP 地址的请求始终分配到同一台后端服务器。
nginx
upstream backend_servers {
ip_hash;
server 192.168.1.101;
server 192.168.1.102;
server 192.168.1.103;
}
最少连接:将请求分配给当前连接数最少的后端服务器。
nginx
upstream backend_servers {
least_conn;
server 192.168.1.101;
server 192.168.1.102;
server 192.168.1.103;
}
配置 Nginx 服务器块:
在配置文件中添加server块,将客户端的请求转发到上游服务器组。
nginx
server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://backend_servers;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
上述配置中,listen指定 Nginx 监听的端口,server_name指定服务器的域名或 IP 地址。proxy_pass指令将请求转发到之前定义的上游服务器组backend_servers。proxy_set_header指令用于设置请求头,将客户端的真实 IP 地址等信息传递给后端服务器。
启用配置文件:
在/etc/nginx/sites-enabled目录下创建一个指向刚才创建的配置文件的符号链接。
bash
sudo ln -s /etc/nginx/sites-available/load_balancer.conf /etc/nginx/sites-enabled/
检查配置语法并重启 Nginx:
在应用新配置之前,需要检查配置文件的语法是否正确。
bash
sudo nginx -t
若输出 “syntax is ok” 和 “test is successful”,则表示配置语法正确。然后重启 Nginx 服务使新配置生效。
bash
sudo systemctl restart nginx
验证负载均衡配置
你可以使用curl命令或者在浏览器中多次访问 Nginx 服务器的 IP 地址或域名,观察请求是否被均匀地分配到各个后端服务器上。例如,在后端服务器上记录访问日志,通过查看日志来确认负载均衡是否正常工作。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快