502 Bad Gateway通常表示Nginx或其他网关没有从后端程序获得正常响应。排查时不要急着重装环境,可以按照下面的顺序检查。
第一步:确认后端服务是否运行
如果使用PHP-FPM,检查对应版本的PHP-FPM状态。如果是FastAPI、Node.js或Java服务,确认进程没有退出。
第二步:检查端口或Socket
确认Nginx配置中的代理端口、PHP Socket路径和实际服务监听位置一致。常见问题是升级PHP后,Nginx仍然指向旧版本的Socket。
第三步:查看错误日志
重点查看Nginx error.log、PHP-FPM日志以及应用自己的运行日志。日志通常会直接显示connection refused、timeout、permission denied等原因。
第四步:检查服务器资源
查看内存、磁盘和进程数量。磁盘写满、内存不足或进程达到上限,都可能导致后端无法正常响应。
第五步:检查超时设置
如果只有执行耗时任务时出现502,检查代理超时、PHP执行时间和应用自身的请求超时。但不要单纯无限增加超时时间,应先确认程序为什么执行过慢。
修复后先直接访问后端服务,再通过Nginx访问,以便确认故障发生在哪一层。