那么遇到这些状况应该怎样处理呢?下面是关于nginx服务器出现504 Gateway Time-out的解决方法。php
缘由一:nginx
因为nginx默认的fastcgi进程响应的缓冲区过小形成apache
解决方式:后端
通常默认的fastcgi进程响应的缓冲区是8K,这时能够设置大一点,在nginx.conf里,加入:安全
fastcgi_buffers 8 128k服务器
这表示设置fastcgi缓冲区为8块128k大小的空间。网络
固然若是在进行某一项即时的操做, 可能须要nginx的超时参数调大点, 例如设置成60秒:php-fpm
send_timeout 60;测试
通过这两个参数的调整,通常不会再提示“504 Gateway Time-out”错误,问题基本解决。网站
状况二:
PHP环境的配置问题
有时候网站须要对php-fpm和nginx进行配置修改。由于这种状况下,也会出现“504 Gateway Time-out”错误提示。而这时候Nginx 504 Gateway Time-out的含义就是所请求的网关没有请求到,简单来讲就是没有请求到能够执行的PHP-CGI。
解决方式
更改php-fpm的几处配置:
把max_children由以前的10改成如今的30,这样就能够保证有充足的php-cgi进程能够被使用;
把request_terminate_timeout由以前的0s改成60s,这样php-cgi进程 处理脚本的超时时间就是60秒,能够防止进程都被挂起,提升利用效率。
接着再更改nginx的几个配置项,减小FastCGI的请求次数,尽可能维持buffers不变:
fastcgi_buffers由 4 64k 改成 2 256k;
fastcgi_buffer_size 由 64k 改成 128K;
fastcgi_busy_buffers_size 由 128K 改成 256K;
fastcgi_temp_file_write_size 由 128K 改成 256K。
从新加载php-fpm和nginx的配置,再次测试,若是没有出现“504 Gateway Time-out”错误,问题解决。
状况三
另外,php-fpm的默认静态处理方式会使得php-cgi的进程长期占用内存而没法释放,这也是致使nginx出错的缘由之一,所以能够将php-fpm的处理方式改为apache模式。
SSL证书是HTTP明文协议升级HTTPS加密协议的重要渠道,是网络安全传输的加密到通道。关于更多SSL证书的资讯,请关注GDCA(数安时代)。GDCA致力于网络信息安全,已经过WebTrust 的国际认证,是全球可信任的证书签发机构。GDCA专业技术团队将根据用户具体状况为其提供最优的产品选择建议,并针对不一样的应用或服务器要求提供专业对应的HTTPS解决方案。