要在 Nginx 中设置负载均衡来分发请求到两个 HTTP 服务器,你可以使用 upstream
指令定义一组服务器,并在 server
块中配置反向代理。下面是一个简单的示例:
http {
upstream backend_servers {
server 192.168.1.100:8080; # 第一个服务器的IP和端口
server 192.168.1.101:8080; # 第二个服务器的IP和端口
}
server {
listen 80;
server_name your_domain.com; # 请替换为你的域名或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;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
配置说明:
upstream 块:定义一个名为
backend_servers
的后端服务器组。- 在此块中,列出了参与负载均衡的所有服务器,每个服务器都指定了 IP 地址和端口。
server 块:处理客户端请求。
listen
指令指定监听的端口(如80)。server_name
指定要处理请求的域名。
location 块:对根路径 (
/
) 的请求进行处理,将其转发到上面的后端服务器组 (backend_servers
)。proxy_pass:将请求发送到定义的后端服务组。
proxy_set_header:设置头部信息,以便后端能够获取客户端的真实信息。
注意事项:
- 确保 Nginx 已安装并运行。
- 修改配置文件后,请使用命令
nginx -t
检查语法是否正确,并用nginx -s reload
重载配置。
可选配置:
你还可以根据需要进一步自定义负载均衡算法,例如:
- 默认情况下,Nginx 使用轮询(round-robin)算法。
- 可以选择其他算法,如最少连接(least_conn),例如:
upstream backend_servers {
least_conn; # 使用最少连接算法
server 192.168.1.100:8080;
server 192.168.1.101:8080;
}
根据具体需求调整这些参数即可。
内容由零声教学AI助手提供,问题来源于学员提问