Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于读取资源的等没有执行完毕而导致PHP-CGI进程终止。
Nginx 503 Service Temporarily Unavailable 服务暂时不可用,由于临时的服务器维护或者过载,服务器当前无法处理请求,(比如并发大的情况下)
Nginx 504 Gateway Time-out的含义是没有请求到可以执行的PHP-CGI
502 汇总
1、php进程死亡
查看 service php-fpm status ps -aux |grep php
然后 service php-fpm start 启动php-fpm
2、php-cgi进程数不足
ps -aux | grep php-fpm | grep pool | wc -l
此原因的问题表现为:动态请求有时出现502错误,一般没问题,这是并发高时php-cgi进程数不够用的表现
解决方法:修改php-fpm配置php-fpm.conf,将 60< /value> 中的数加大,max_children数的设置不仅取决于服务器硬件配置,而且和php程序的复杂度有关,一般4G内存可以设置到 120-200。修改后把php-fpm reload下;必要时是再修改nginx配置nginx.conf, 将 worker_processes 数调到与cpu数相等(worker_processes默认为1)
3、php-cgi 进程连接超时
php进程运行了一段时间出现502,这种情况可能是php.ini 没有加set_time_limit(0) ,也可能是被php-fpm限定了运行时间,
解决方案:php-fpm.conf request_terminate_timeout
4、磁盘空间不足
此原因较少 表现为502错误或者无法连接到服务器,无法连接到服务器是nginx也死了
这种情况的判断:启动php-fpm或者nginx时间较长,但最终启动失败。大概率是磁盘满了
df -lh 关注log 删除大量的日志文件
Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止。
Nginx 504 Gateway Time-out的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI。
解决这两个问题其实是需要综合思考的,一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关,而Nginx 504 Gateway Time-out则是与nginx.conf的设置有关。