返回目录实战:Nginx 返回 502,如何一步步检查上游
502 表示网关没有得到期望的上游响应。它不等于域名解析一定错误,也不等于网站数据库损坏。先沿请求路径逐段测试,往往能快速确定范围。
<!-- more -->
## 找到实际生效的配置
先确认是宿主机 Nginx、OpenResty 容器还是其他代理。读取生效配置中的 proxy_pass、location 和请求头,避免编辑了一份没有被加载的文件。完整配置可能含敏感信息,不要原样公开。
## 从代理环境请求上游
在代理所在网络空间内请求 upstream。宿主机的 127.0.0.1 与桥接容器里的地址不同;服务名则依赖 Docker 网络与 DNS。测试时保留正确 Host 与协议,因为一些应用会做来源校验。
## 把错误日志与现象对应起来
connection refused 常提示监听或地址问题;upstream timed out 要检查连接与响应阶段;prematurely closed connection 需要结合应用崩溃与协议设置。不要把所有错误都用增大 timeout 解决。
## 最小改动并验证完整路径
先校验配置,通过后重载。分别测试上游、HTTPS 域名、文章和接口。WebSocket 与流式响应需要单独检查连接升级、缓冲与超时。重载成功仅代表配置接受,不代表业务已经正常。
## 操作参考
```text
nginx -t
# 根据实际配置替换端口与协议
curl -I http://127.0.0.1:8080/
curl -I https://example.com/
```
示例占位符需替换为自己的环境。涉及生产服务时先保留备份,阅读命令用途后再执行。
## 参考资料
- [官方说明](https://nginx.org/en/docs/http/ngx_http_proxy_module.html)
- [专题阅读路线](/topics/)