You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nginx中通过8080对本地3个端口实现负载均衡?

Nginx负载均衡配置修改方案

你的配置里已经定义了包含8081、8082、8083的后端集群,但8080端口的server块没有将请求转发到这个集群,而是在本地目录/var/www/html下查找文件,这就是负载均衡没生效的核心原因。

修改后的完整配置如下:

upstream backend {
    server localhost:8081;
    server localhost:8082;
    server localhost:8083;
}

server {
    listen 8080;
    listen [::]:8080;

    server_name _;

    location / {
        # 将请求转发到后端集群
        proxy_pass http://backend;
        # 传递请求头信息给后端服务器(可选但推荐)
        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;
    }
}

# 8081端口服务器配置
server {
    listen 8081 default_server;
    listen [::]:8081 default_server;

    root /var/www/n81;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }
}

# 8082端口服务器配置
server {
    listen 8082 default_server;
    listen [::]:8082 default_server;

    root /var/www/n82;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }
}

# 8083端口服务器配置
server {
    listen 8083 default_server;
    listen [::]:8083 default_server;

    root /var/www/n83;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }
}

关键改动说明

  • 移除了8080端口server块里的root、index和try_files配置,替换为proxy_pass http://backend,让所有发往8080的请求都转发到你定义的后端集群
  • 添加的proxy_set_header指令,是为了把客户端的真实IP、请求协议等信息传递给后端服务器,方便后端做日志记录或业务逻辑处理,这部分可选,但建议保留

配置修改完成后,执行以下命令重启Nginx让配置生效:

sudo nginx -s reload

如果重启失败,可先用nginx -t命令检查配置语法是否有误。

内容的提问来源于stack exchange,提问作者Khadijah Celestine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 00:20:05