Nginx 502 排查
定位上游连接和响应异常
语法
curl -v --connect-timeout 5 --max-time 10 http://127.0.0.1:3000/health说明
适用于 Nginx 返回 502 Bad Gateway。先对照错误日志中的请求时间和 upstream 地址,再从 Nginx 所在网络环境测试上游。常见原因包括端口未监听、HTTP/HTTPS 协议配错、Unix socket 权限不符、无效响应头或上游提前关闭连接;超时也需区分 504 等状态,不能统一靠增大超时修复。
参数
--connect-timeout连接阶段超时秒数
--max-time整个请求最长时间秒数
示例
从代理所在环境测试上游
使用真实上游协议、地址和只读健康检查路径。
curl -v --connect-timeout 5 --max-time 10 http://127.0.0.1:3000/health注意事项:Docker 中的 127.0.0.1 指当前容器,不是宿主机或其他容器。上游依赖虚拟主机时还要传入对应 Host。
定位上游错误类型
查看最近错误日志,区分连接拒绝、无效响应和提前断开。
sudo tail -n 200 /var/log/nginx/error.log | grep -E 'upstream|connect\(\)|prematurely|invalid header'注意事项:路径以配置为准。结合监听端口、服务日志和网络策略定位;若修改代理配置,必须检查通过后再重载,不要直接授予 777 权限。