nginx 出现 502 Bad Gateway 通常表示:nginx 作为反向代理,无法从后端服务(如 PHP-FPM、Tomcat、Node、Python 等)拿到有效响应。排查可以从「nginx → 后端 → 系统资源 → 配置」逐步进行。
下面是一套实用排查流程(以最常见场景为例)。
tail -f /var/log/nginx/error.log
常见 502 报错及含义:
➡ 后端服务没启动或端口不对
排查:
ps aux | grep php-fpm
netstat -lntp | grep 9000
➡ 后端响应太慢 / 卡死
排查:
➡ upstream 里所有后端都不可用
排查:
upstream backend {
server 127.0.0.1:8080;
}
确认后端是否全部挂掉
➡ nginx 没权限访问 unix socket
常见于 PHP-FPM:
ls -l /run/php/php-fpm.sock
确保 nginx 用户(如 www-data)有权限
绕过 nginx,直接测后端
curl http://127.0.0.1:9000
(或用 fpm status)
curl http://127.0.0.1:8080/health
✅ 如果后端直接访问也报错 → 问题在后端
✅ 后端正常但 nginx 502 → 问题在 nginx 配置 or 网络
常见错误配置:
location / {
proxy_pass http://127.0.0.1:8080;
}
✅ 确认:
/proxy_connect_timeout 10s;
proxy_send_timeout 30s;
proxy_read_timeout 30s;
PHP-FPM 场景:
fastcgi_connect_timeout 10s;
fastcgi_send_timeout 30s;
fastcgi_read_timeout 30s;
ulimit -n
nginx 配置:
worker_rlimit_nofile 65535;
pm.max_childrenmaxThreadstop
free -h
你可以贴出:
我可以直接帮你定位是哪一行配置或哪个服务的问题。