网站504错误什么原因 网站报错503是什么原因?


网站504错误什么原因 网站报错503是什么原因?

文章插图
【网站504错误什么原因 网站报错503是什么原因?】做网站的同学经常会发现一些nginx服务器访问时候提示504 Gateway Time-out错误,而出现这种错误有两种情况,第一种可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out 。而第二种就有可能是PHP环境的配置问题,有些网站一直是使用nginx做代理后端的apache运行php来提供服务 。apache经常会不定期不定时间的出现不能服务失去响应,然后nginx出现”504 Gateway Time-out” 。
网站504错误什么原因 网站报错503是什么原因?

文章插图
  • 那么遇到这些情况应该怎样处理呢?下面是关于nginx服务器出现504 Gateway Time-out的解决方法 。
  • 原因一:由于nginx默认的fastcgi进程响应的缓冲区太小造成的错误
  • 解决方式:一般默认的fastcgi进程响应的缓冲区是8K,这时可以设置大一点,在nginx.conf里 , 加入:fastcgi_buffers 8 128k这表示设置fastcgi缓冲区为8块128k大小的空间 。当然如果在进行某一项即时的操作, 可能需要nginx的超时参数调大点, 例如设置成60秒: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解决方案 。

    • 推荐阅读