nginx出现504 Gateway Time-out的问题解决
出现该错误的原因:
是因为php页面消耗的最大内存默认是为 8M (在PHP的ini件里可以看到) ,如果文件太大 或图片太大 在读取的时候(造成网页请求超时,也就是浏览网站网页所发出的请求没有反应或者未响应) 会发生上述错误。
1.若nginx采用的是php请求解析服务是ftp,检查 /etc/php/fpm/php.ini参数
php默认上传文件大小是8M,在此我修改成100M,可自行适当修改(在此上传100M以内的文件扔报504,则走下一步)
Upload_max_filesize=100M
Post_max_size=100m
memory_limit=500m
重启fpm
/etc/init.d/php7.0-fpm restart
或
service php7.0-fpm restart
2.cd /etc/nginx/nginx.conf … 进去nginx配置文件添加
PS:有时候缓存过小也会引起504,具体情况还需要根据Nginx的日志内容来分析
修改fastcgi的缓存大小如下:
http{
...
client_max_body_size 500m;
fastcgi_connect_timeout 3000;
fastcgi_send_timeout 3000;
fastcgi_read_timeout 3000;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
server_names_hash_bucket_size 128;
client_header_buffer_size 1
large_client_header_buffers 4 256k;
...
}
3.还有php-fpm里的配置文件 /etc/php/7.0/fpm/pool.d -> 编辑www.conf
还有就是php-fpm.conf中max_children与request_terminate_timeout两个重要参数的设置。这两个参数的设置需要我们根据PHP程序情况及服务器带宽状况综合考虑并计算出合理准确的值
//在此我仅注释了此行
;request_terminate_timeout = 0;
成功!
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/2424.html