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

处理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

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册