什么是“504GatewayTime-out”错误?怎么办?如何解决“504GatewayTime-out”错误?

本文目录:

504 Gateway Time-out就字面意思,我们可以理解为网页请求超时,也就是浏览网站网页所发出的请求没有反应或者未响应。

出现"504 Gateway Time-out"的原因:

1、在网站程序层面来说,就是请求未能够执行相应的PHP-CGI程序,或者PHP-CGI程序未能做出相应的处理,又或者是CGI程序的响应处理结果未能够反馈到浏览器或者未能及时反馈到浏览器。

2、504 Gateway Time-out错误多是存在于Nginx网站服务器环境下,多与nginx.conf与php-fpm.conf设置是否正确合理有关。

504GatewayTime-out错误的解决方法:

1、就是根据网站服务器性能及网站流量等诸多因素整合考虑,正确合理的设置niginx.conf和php-fpm.conf配置。

2、进行正确合理nginx.conf配置,我们需要先了解和清楚我们网站服务器的配置性能,包括CPU、内存等,并对网站服务器进行必要的性能测试,从而准确的掌握网站服务器自身性能状况。

3、其次,是通过网站统计代码的添加,分析段时间内网站流量状况,比如:统计、CNZZ站长统计等,掌握网站日流量及PHP-CGI请求的大概情况。

根据我们掌握的服务器性能状况及网络流量情况,合理的对nginx.conf中的下列字句进行合理正确的设置。

fastcgi_connect_timeout300s;

fastcgi_send_timeout300s;

fastcgi_read_timeout300s;

fastcgi_buffer_size128k;

fastcgi_buffers8128k;#8128

fastcgi_busy_buffers_size256k;

fastcgi_temp_file_write_size256k;

fastcgi_intercept_errorson;

这些字句的设置规定了PHP-CGI的连接、发送和读取时间限制,需根据服务器性能及网络流量综合考虑设置,时间设置过长会给网站服务器造成压力,导致网站响应缓慢,甚至服务器死机;

时间设置过短,则就会出现504 Gateway Time-out或者其他CGI无响应错误。

4、还有就是php-fpm.conf中max_children与request_terminate_timeout两个重要参数的设置。

这两个参数的设置需要我们根据PHP程序情况及服务器带宽状况综合考虑并计算出合理准确的值,才能够避免504 Gateway Time-out或者其他CGI无响应错误的出现。

5、通常情况下,一般网站,可将request_terminate_timeou设置在900s左右,而max_children值根据服务器内存大小和CGI请求数目设置为合理的数值,一般设置为800M左右。

扩展资料:

"504 Gateway Time-out"其他修复方式:

情况一:由于nginx默认的fastcgi进程响应缓冲区太小造成

这种情况下导致fastcgi进程被挂起,如果fastcgi服务队这个挂起处理不是很好的话,就可能提示“504 Gateway Time-out”错误。

情况一解决办法:

默认的fastcgi进程响应的缓冲区是8K,我们可以设置大一点,在nginx.conf里,加入:fastcgi_buffers 8128k,这表示设置fastcgi缓冲区为8块128k大小的空间。

情况一解决办法(改进):

在上述方法修改后,如果还是出现问题,我们可以继续修改nginx的超时参数,将参数调大一点,如设置为60秒:send_timeout 60;

经过这两个参数的调整,结果没有再提示“504 Gateway Time-out”错误,说明效果还是挺不错的,问题基本解决。

如何解决“504 Gateway Time-out”错误

我们在访问大流量网站或者运营有较多数据的网站时候,偶尔会出现504 Gateway Time-out错误,这多是网站服务器配置不当导致的,下面分享一下504GatewayTime-out错误的解决方法。

  • 01

代码释义
504 Gateway Time-out就是字面意思,可以理解为网页请求超时,也就是浏览网站网页所发出的请求没有反应或者未响应,在网站程序层面来说,就是请求未能够执行相应的PHP-CGI程序,或者PHP-CGI程序未能做出相应的处理,又或者是CGI程序的响应处理结果未能够反馈到浏览器或者未能及时反馈到浏览器。

  • 02

报错背景
504 Gateway Time-out错误多是存在于Nginx网站服务器环境下,多与nginx.conf与php-fpm.conf设置是否正确合理有关。解决方法就是根据网站服务器性能及网站流量等诸多因素整合考虑,正确合理的设置niginx.conf和php-fpm.conf配置。

  • 03

解决方法
进行正确合理nginx.conf配置,我们需要首先了解和清楚我们网站服务器的配置性能,包括CPU、内存等,并对网站服务器进行必要的性能测试(可参考:vps主机性能测试方法详解),从而准确的掌握网站服务器自身性能状况;

  • 04

其次,是通过网站统计代码的添加,分析一段时间内网站流量状况,比如:CNZZ站长统计等,掌握网站日流量及PHP-CGI请求的大概情况;

  • 05

最后,根据我们掌握的服务器性能状况及网络流量情况,合理的对nginx.conf中的下列字句进行合理正确的设置。
fastcgi_connect_timeout300s;
fastcgi_send_timeout300s;
fastcgi_read_timeout300s;
fastcgi_buffer_size128k;
fastcgi_buffers8128k;#8128
fastcgi_busy_buffers_size256k;
fastcgi_temp_file_write_size256k;
fastcgi_intercept_errorson;

  • 06

还有就是php-fpm.conf中max_children与request_terminate_timeout两个重要参数的设置。这两个参数的设置需要我们根据PHP程序情况及服务器带宽状况综合考虑并计算出合理准确的值,才能够避免504Gateway Time-out或者其他CGI无响应错误的出现。

网站打开错误,网页上出现504错误该怎样解决?

大家对于504 Gateway Time-out的字面意思可以理解为网页请求超时,这是我们在浏览网站网页时发出的请求没有响应,从网站程序层面来讲,是请求未能够执行相应的PHP-CGI程序,或者PHP-CGI程序未能做出相应的处理,又或者是CGI程序的响应处理结果未能够反馈到浏览器或者未能及时反馈到浏览器。
其次,04 Gateway Time-out错误多是存在于Nginx网站服务器环境下,多与nginx.conf与php-fpm.conf设置是否正确合理有关。504GatewayTime-out错误的解决方法是根据网站服务器性能及网站流量等诸多因素整合考虑,正确合理的设置niginx.conf和php-fpm.conf配置。
而进行正确合理nginx.conf配置,需要我们首先了解清楚我们网站服务器的配置性能,包括CPU、内存等基本配置,并对网站服务器进行必要的性能测试,从而准确的掌握网站服务器自身性能状况;
接下来,可以通过网站统计代码的添加,分析一段时间内网站流量状况,比如:统计、CNZZ站长统计等,掌握网站日流量及PHP-CGI请求的大概情况;
最后,根据我们掌握的服务器性能状况及网络流量情况,合理的对nginx.conf中的下列字句进行合理正确的设置。
fastcgi_connect_timeout300s;
fastcgi_send_timeout300s;
fastcgi_read_timeout300s;
fastcgi_buffer_size128k;
fastcgi_buffers8128k;#8128
fastcgi_busy_buffers_size256k;
fastcgi_temp_file_write_size256k;
fastcgi_intercept_errorson;
这些字句的设置规定了PHP-CGI的连接、发送和读取时间限制,需根据服务器性能及网络流量综合考虑设置,时间设置过长会给网站服务器造成压力,导致网站响应缓慢,甚至服务器宕机;时间设置过短,则会出现504Gateway Time-out或者其他CGI无响应错误。
还有就是php-fpm.conf中max_children与request_terminate_timeout两个重要参数的设置。这两个参数的设置需要我们根据PHP程序情况及服务器带宽状况综合考虑并计算出合理准确的值,才能够避免504Gateway Time-out或者其他CGI无响应错误的出现。
正常情况下,一般网站可将request_terminate_timeou设置在900s左右,而max_children值根据服务器内存大小和CGI请求数目设置为合理的数值,一般设置为800M左右。

服务器提示504 Gateway Time-out

情况一:由于nginx默认的fastcgi进程响应缓冲区太小造成

这种情况下导致fastcgi进程被挂起,如果fastcgi服务队这个挂起处理不是很好的话,就可能提示“504 Gateway Time-out”错误。

情况一解决办法:

默认的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”错误提示。

情况二解决办法( php-fpm配置修改):

将max_children由之前的10改为30,这样操作是为了保证有充足的php-cgi进程可以被使用。

将request_terminate_timeout由之前的0秒改成60秒,这样使php-cgi进程处理脚本的超时时间提高到60秒,可以防止进程被挂起以提高利用效率。

情况二解决办法(nginx配置修改):

为了减少fastcgi的请求次数,尽量维持buffers不变,我们要更改nginx的几个配置项,如下:

将fastcgi_buffers由4 64k改为2 256k;

将fastcgi_buffer_size 由64k改为128k;

将fastcgi_busy_buffers_size由128k改为256k;

将fastcgi_temp_file_write_size由128k改成256k。

如何解决504 Gateway Time-out

第一种办法:

  1. 把max_children由之前的10改为现在的30,这样就可以保证 有充足的php-cgi进程可以被使用;
    把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。

  2. 接着再更改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。

大家都在看
本文经用户投稿或网站收集转载,如有侵权请联系本站。