互联网技术 · 2024年2月17日 0

处理504 Gateway Time-out错误的方法

由于网站不稳定的因素,经常报504 Gateway Time-out的错误,CPU也跟着100%,每次都要重 启服务器才可以解决问题,问题的根源在哪里,我们怎么才能进行解决那?下面为大家详细讲解。

什么是“504 Gateway Time-out”

其实很简单,504 Gateway Time-out就是请求超时,由于服务器未能技术响应而造成的,当然了,数据库不响应也是可以造成无法连接,或者504的错误。

处理504 Gateway Time-out错误的方法

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段,也是可以的。

处理504 Gateway Time-out错误的方法

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