网站好好开着,突然打开就是502、503、504,用户刷半天白屏,很急人。这几个错误看着像,原因不太一样:502是后端没接上,503是服务暂不可用,504是网关等超时。小编一个个踩过,这篇按502/503/504分别排查,从Nginx日志到PHP进程,一步步帮你定位。
网关错误多半是后端扛不住,换台性能稳的云主机最省心,这两家性价比不错:Bacloud(海外服务器)、ProfitServer(云主机)。

先分清三种错误
502 Bad Gateway:Nginx转发给后端,后端没回应,多半是PHP/应用进程挂了。503 Service Unavailable:服务主动说暂不可用,可能是维护、过载、配置了限制。504 Gateway Timeout:后端处理太慢,超时了。先分清是哪个,排查方向就不一样。

看Nginx错误日志
排查第一件事,看Nginx错误日志。nginx.conf里error_log的路径,默认在/var/log/nginx/error.log。tail -f跟着日志,看最新报错。日志会直接告诉你是connect失败还是upstream timed out,指向很明确。日志是排查网关错误的第一手线索。

502多半是PHP进程挂了
跑PHP网站遇到502,最常见是PHP-FPM进程挂或耗尽。systemctl status php-fpm看状态,或重启php-fpm试试。进程数不够、内存不足,都会导致upstream连不上。看php-fpm日志和内存,进程数按需调。502多半能在php-fpm这里找到答案。

504超时怎么处理
504是后端处理超过Nginx等待时间。调整proxy_read_timeout、fastcgi_read_timeout,把超时时间调大,解决瞬时慢查询超时。但根本原因常是慢查询、死锁、接口太慢,光调超时不治本。排查慢SQL、优化接口,才是正经路子。超时只是症状,根因在慢。

503和负载过载
503很多是服务过载或主动限流。看负载、看是不是被限流,数据库连不上也可能503。临时重启能缓解,但老复发就得扩容或优化。实在扛不住流量,升级服务器配置或加缓存。别再一错就重启,找根因才是正道。

总结:先分清502/503/504,看Nginx日志定位,502查PHP-FPM、504调超时和慢查询、503看负载和扩容,网站网关错误就能一步步排查清楚,别慌。



下载 
下载 
下载
下载 
下载
喜欢
顶
难过
囧
围观
无聊



