网站突然 502 怎么办?照着这个顺序查,十次有八次能定位

王尘宇 问题解答 4

网站突然 502 怎么办?照着这个顺序查,十次有八次能定位-第1张图片-王尘宇

半夜收到报警,网站全 502。别上来就重启服务器,容易把现场破坏了。我一般按下面顺序查,大部分情况能定位。

先看是不是 nginx 真连不上后端。看错误日志:tail /var/log/nginx/error.log,如果写着"connect() failed (111: Connection refused) while connecting to upstream",说明 nginx 找不到后面的 PHP 或者后端服务。这时候去查 PHP-FPM 在没在跑:systemctl status php-fpm,没跑就启动。十次里有六次就是 FPM 挂了没起来。

如果 PHP-FPM 在跑但还是 502,看它是不是进程满了。ps aux | grep php-fpm 数一下进程数,再对比 pm.max_children 配置。请求多、进程不够,新请求就被拒。临时把 max_children 调大,重启 FPM,往往就好了。但这只是救急,根因可能是某个接口太慢占着进程。

再看资源。top 看一下内存和 CPU,有时候是内存爆了触发 OOM 把 FPM 杀了。这种得查是哪个脚本吃内存,光调参不解决根本。最后看配置:nginx 里 fastcgi_pass 的端口或 socket 路径,跟 FPM 监听的对不上也会 502。改完配置记得 nginx -t 测语法再 reload。顺序对了,排查其实不复杂。最怕慌了乱重启,重启完能用了但不知道为啥,下次还犯。

标签: 502错误 故障排查 服务器运维

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~