504 Gateway Time-out是什么意思 如何处理
由于网站不稳定的因素,经常报504 Gateway Time-out的错误,CPU也跟着100%,每次都要重 启服务器才可以解决问题,问题的根源在哪里,我们怎么才能进行解决那?下面为大家详细讲解。
什么是“504 Gateway Time-out”
其实很简单,504 Gateway Time-out就是请求超时,由于服务器未能技术响应而造成的,当然了,数据库不响应也是可以造成无法连接,或者504的错误。
504 Gateway Time-out是由哪些原因造成的。
1,服务器不稳定,死机等会造成 504 Gateway Time-out
如果网站服务器异常,死机等等无法让用户得到响应就会造成504 Gateway Time-out的问题,一般情况下,重启服务器就会OK,如果经常出现这样的问题,你可以考虑更换服务器来解决。
2,网站被攻击导致 504Gateway Time-out
如果你的网站被攻击,比如DOS攻击,也会造成服务器504Gateway Time-out的错误,这个时候就需要增加防御,或者设置DNS隐藏真实IP、购买高防服务器去做硬性防御了,或者安装云锁,批量屏蔽攻击者的IP段,也是可以的。
3,数据库与服务器断开相应
这边说一下,服务器死机,不一定就是本机异常,也可能是mysql异常所导致的,建议升级数据库版本,充分保证良性运行。
4,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”错误,问题解决。
4,发服务器商的工单,让服务器商技术协助解决!
最后,如果你是购买正规服务器商的服务器,你也是可以通过发工单来解决这个问题的,让技术协助你解决,一般而言,景安的服务器是不需要花钱的,阿里云的服务器可能需要花点钱就可以帮你解决,一种非常方便的解决方式。
文章来源:代代SEO博客
来源地址:https://www.daidaiseo.com/seoti/448.html