学必求其心得,
业精于勤。

网页504是什么意思?最近网络波动有点大

网页504是什么意思?百科:504错误是网关超时的意思,504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。

最近,大家打开小编的网站经常会遇到504错误,其实不是我网站服务器缘故,而是接入的CDN服务存在网络波动,所以有时会碰到504错误,大家要是有耐心刷新下,有时候就会连接上了,要是多次连接不少,可能就要等一段时间了。

除了CDN服务网络波动外,网页504错误还有另外的原因:

首先,大家对于504 Gateway Time-out的字面意思可以理解为网页请求超时,这是我们在浏览网站网页时发出的请求没有响应,从网站程序层面来讲,是请求未能够执行相应的PHP-CGI程序,或者PHP-CGI程序未能做出相应的处理,又或者是CGI程序的响应处理结果未能够反馈到浏览器或者未能及时反馈到浏览器。

其次,504 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的连接、发送和读取时间限制,需根据服务器性能及网络流量综合考虑设置,时间设置过长会给网站服务器造成压力,导致网站响应缓慢,甚至服务器宕机;时间设置过短,则会出现504 Gateway Time-out或者其他CGI无响应错误。

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

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