很多新手遇到网站502错误,第一反应就是重启Nginx、重启PHP,来回重启好几次,根本不知道502是Nginx连不上后端的PHP服务,瞎重启半天问题都没解决。我自己踩过无数次坑,总结了502的完整排查流程,按步骤来根本不用瞎猜。首先第一步,先登宝塔看PHP-FPM是不是在运行,很多时候PHP进程因为内存不够直接崩了,根本没启动,Nginx当然连不上,返回502;第二步,去看PHP的错误日志,大部分502都是因为PHP代码里有内存泄漏,或者调用了被禁用的函数,把PHP进程直接打挂了,日志里会明明白白写着哪个文件哪一行出问题;第三步,检查Nginx站点配置里的PHP转发地址是不是对的,我之前升级PHP版本之后,Nginx里配的sock路径还是老版本的,PHP新版本的sock文件名变了,Nginx连不上老路径,直接全站点502;第四步,看服务器内存是不是满了,内存占满的时候PHP进程会直接被杀,Nginx拿不到后端响应,就返回502。
还有个容易踩的坑:很多人以为502是网站程序坏了,上来就改代码,其实大部分时候,你只要把崩掉的PHP进程重启,或者把sock路径改对,两分钟就恢复。我之前有次网站502,对着代码改了俩小时,最后发现就是PHP-FPM没启动,点个重启按钮,网站立刻就好。新手记个要点:502本质是Nginx找不到后端服务,你顺着从Nginx到PHP的连接链路查,别上来就改网站代码,大部分时候根本不是代码的问题,就是服务没启动或者路径配错了。
本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。
0