网站出现 502 / 504 怎么排查:从 Nginx 到上游服务的一套实用顺序

遇到 502 和 504 时,最浪费时间的做法就是边猜边改配置。更有效的方式,是把问题按链路拆开:Nginx 本身、网络、上游应用、超时设置、数据库依赖。只要顺序清楚,很多故障都能更快定位。

502 更像连接失败,504 更像等待超时

虽然实际情况会更复杂,但粗略理解这个区别很有帮助:502 通常说明 Nginx 没拿到正常上游响应,504 通常说明它等太久还没等到。先建立这个直觉,排查就不会一上来跑偏。

先确认应用是不是还活着

很多人看到错误页就先去改 nginx.conf,结果应用进程其实已经退出了,或者数据库连不上导致接口卡死。先直接请求上游端口,是排查里性价比最高的一步。

日志一定要两边对着看

Nginx error.log 和应用日志必须同时看。只看一边,很容易只看到表象。比如 Nginx 显示 upstream timed out,而应用日志里可能早就告诉你某个 SQL 卡住了。

作者说明

长期维护小型网站和服务器,关注真正能解决问题的技术教程、部署经验与排障方法。