前言:我们都知道http状态码5XX表示服务器端错误,其中最常见就是 500和502还有504。500状态就不多做解释,多为代码语法错误导致的异常,今天主要说下 502 和 504。
502:Bad gateway
产生此问题有两种情况:
情况一: PHP-FPM没有启动 ,在停止掉PHP_FPM后,再去访问会产生502
页面访问:
情况二:是php-fpm.conf的配置文件中,max_children和request_terminate_timeout 给的不足导致的问题
总结:一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关
504 Gateway Timeout
504 Gateway Time-out则是与nginx.conf的设置有关
情况一:由于nginx默认的fastcgi进程响应缓冲区太小造成
这种情况下导致fastcgi进程被挂起,如果fastcgi服务队这个挂起处理不是很好的话,就可能提示“504 Gateway Time-out”错误。
情况二:nginx.conf配置文件中超时时间设置太短
如:调整nginx.conf的相关设置:
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_buffer_size 256k;//缓存区设置 上下数值保持一致
fastcgi_buffers 16 256k;//缓存区设置 上下数值保持一致
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;
上述两个问题的解决方案也可以使用: 定时平滑重启php-cgi来进行处理