在统信UOS上配置Nginx反向代理需先定义upstream集群(如backend_cluster),再在server块中用proxy_pass http://backend_cluster指向它;weight值须为正整数,proxy_pass结尾不能带斜杠,且必须配置proxy_set_header传递真实IP,最后通过nginx -t检查并systemctl reload nginx生效。

在统信UOS上将Nginx用作反向代理并分发请求到多个后端服务,必须先定义upstream集群,再在server块中通过proxy_pass指向该集群,否则请求会直接失败或返回502错误。
创建upstream负载均衡集群
打开终端,执行以下命令创建专用配置文件:
sudo nano /etc/nginx/conf.d/loadbalance.conf
在文件中写入upstream块,注意名称必须是合法标识符且后续proxy_pass要严格匹配:
upstream backend_cluster {
server 192.168.1.101:8080 weight=3;
server 192.168.1.102:8080 weight=2;
server 192.168.1.103:8080 max_fails=2 fail_timeout=30s;
}
每台后端服务器的IP和端口必须真实可达,【weight值不能为0或负数,否则该节点会被Nginx静默忽略】。max_fails与fail_timeout配合使用,用于自动剔除故障节点。
配置反向代理server块
在同一loadbalance.conf文件末尾追加server监听段落:
server {
listen 80;
server_name lb.uos.local;
location / {
proxy_pass http://backend_cluster;
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_connect_timeout 10;
proxy_send_timeout 15;
proxy_read_timeout 15;
}
}
【proxy_pass必须以http://开头且结尾不能带斜杠,否则会导致后端路径拼接错误】。proxy_set_header系列指令缺一不可,否则后端应用无法获取真实客户端IP,权限控制和日志记录将全部失效。
验证并启用配置
第一步:执行语法检查
sudo nginx -t
第二步:若输出包含“syntax is ok”和“test is successful”,继续下一步;若报错,返回前两步修正配置。
第三步:重载Nginx使新配置生效
sudo systemctl reload nginx
第四步:确认80端口已监听且worker进程正常运行
sudo ss -tlnp | grep :80











