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

NGINX配置问题:域名访问报502 Bad Gateway,带端口可正常访问

问题分析与修复方案

1. localhost代理出现502的原因

你的后端服务(8772端口)大概率只绑定了公网IP/特定网卡,没有监听本地回环地址127.0.0.1或localhost。可以通过以下命令验证监听状态:

netstat -tulpn | grep 8772

如果输出仅显示XX.XX.XX.XX:8772,无127.0.0.1:8772或:::8772,说明服务拒绝本地回环连接,NGINX用localhost代理时会连接失败,触发502错误。

2. 公网IP代理后资源缺失的原因

后端服务生成资源链接时,可能硬编码了带端口的域名sub.domain.com:8772,或根据请求的Host头生成带端口的路径。当你用公网IP代理时,后端收到的Host头是XX.XX.XX.XX:8772,导致资源路径与实际访问域名不匹配,出现缺失。

修复后的配置建议

server {
  listen 80;
  listen [::]:80;

  server_name sub.domain.com;
  client_max_body_size 256m;

  location / {
    # 优先将后端服务监听地址改为0.0.0.0:8772,再用localhost代理;若暂时无法修改后端,保留公网IP
    proxy_pass http://XX.XX.XX.XX:8772;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    # 传递协议头,确保后端生成正确的HTTP/HTTPS资源链接
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

额外检查步骤

  • 重启NGINX使配置生效:nginx -s reload
  • 查看NGINX错误日志(通常路径/var/log/nginx/error.log),502时会显示具体连接失败原因,辅助定位问题
  • 修改后端服务配置,将监听地址设为0.0.0.0:8772(允许所有网卡访问),这样既支持本地回环代理,也能保留公网访问能力
  • 检查后端服务的站点配置,确保资源链接使用相对路径,或根据X-Forwarded-Host/Host头生成不带端口的域名前缀

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:01:09