nginx出现504 Gateway Time-out的问题解决

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;

成功!

你可能感兴趣的:(nginx出现504 Gateway Time-out的问题解决)