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

Nginx代理Node应用出现502 Bad Gateway问题求助(附配置及日志)

Node应用Nginx部署连接失败问题排查方案

从你提供的Nginx错误日志来看,核心问题是Nginx无法连接到上游的Node服务(localhost:8080),提示连接拒绝(111: Connection refused),按以下步骤逐一排查:

1. 确认Node服务状态

  • 检查8080端口是否被监听:
    netstat -tulpn | grep 8080
    # 或更简洁的ss命令
    ss -tulpn | grep 8080
    
    无输出则说明Node服务未启动,或未监听8080端口。
  • 手动启动Node应用,查看控制台输出是否有启动报错,确保服务能正常运行。

2. 检查Node应用监听地址

  • 确认Node代码中监听的是0.0.0.0:8080而非仅localhost:8080(后者在部分隔离环境下可能导致本地代理无法访问),修改后重启服务。

3. 简化并验证Nginx配置

  • 你的配置中root和index段无实际作用(所有请求已被代理到Node服务),可简化为:
    server {
            listen 80 default_server;
            listen [::]:80 default_server;
            server_name _;
    
            location / {
                    proxy_pass http://localhost:8080;
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection 'upgrade';
                    proxy_set_header Host $host;
                    proxy_cache_bypass $http_upgrade;
            }
    }
    
  • 修改后验证配置有效性并重载Nginx:
    sudo nginx -t && sudo systemctl reload nginx
    

4. 排查端口占用与防火墙

  • 检查8080端口是否被其他进程占用:
    sudo lsof -i :8080
    
    若有占用,结束对应进程后重启Node服务。
  • 确认本地防火墙(如ufw)未限制8080端口的本地连接:
    sudo ufw status
    
    如有必要,添加允许本地访问8080的规则。

5. 验证本地连接可用性

  • 在服务器本地用curl访问Node服务:
    curl http://localhost:8080
    
    若无法访问,说明问题出在Node服务本身或本地网络配置,而非Nginx。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:15:18