导航:首页 > 编程语言 > phpfpm504

phpfpm504

发布时间:2022-11-19 22:50:34

① 网页出现“504 Gateway Time-out”,没有其它信息是什么原因

做网站的同学经常会发现一些nginx服务器访问时候提示504 Gateway Time-out错误,而出现这种错误有两种情况,第一种可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out。而第二种就有可能是php环境的配置问题,有些网站一直是使用nginx做代理后端的apache运行php来提供服务。apache经常会不定期不定时间的出现不能服务失去响应,然后nginx出现”504 Gateway Time-out”。

那么遇到这些情况应该怎样处理呢?下面是关于nginx服务器出现504 Gateway Time-out的解决方法。
原因一:由于nginx默认的fastcgi进程响应的缓冲区太小造成的错误
解决方式:一般默认的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”错误提示。而这时候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;fastc

② 我的网络出现504是什么意思

当我们访问流量较大的网站或操作数据较多的网站时,偶尔会出现504网关超时错误,这主要是由于网站服务器配置不当造成的。让我们分享解决504gatewaytime超时错误的方法。

详细介绍方法/步骤
代码解释

504网关超时字面意思是,可以理解为网页请求超时,即浏览网站网页发送的请求无响应或无响应。在网站程序层面,请求没有执行相应的php-cgi程序,或者php-cgi程序没有进行相应的处理,或者cgi程序的响应处理结果没有反馈给浏览器或者没有及时反馈给浏览器。

错误报告背景

504网关超时错误大多存在于nginx网站服务器的环境中,大多与nginx.conf和php-fpm.conf设置是否正确合理有关。解决方案是根据网站服务器性能、网站流量等诸多因素,正确合理地设置niginx.conf和php-fpm.conf的配置。

溶液

为了正确合理地配置nginx.conf,我们需要了解和理解我们网站服务器的配置性能,包括cpu、内存等。并对网站服务器进行必要的性能测试(参考vps主机性能测试方法的详细描述),从而准确掌握网站服务器本身的性能状态;

其次,通过添加网站统计代码,分析一段时间内的网站流量情况,如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 _ size 256k;

fastcgi _ intercept _ errorson

以及php-fpm.conf中max_children和request _ end _ time out的设置这两个参数的设置需要我们根据php程序和服务器带宽综合考虑,计算出合理准确的值,以避免504 gateway超时或其他cgi无响应错误。

③ PHP 同时多次POST数据到同一网站相同接口获取返回数据 用curl 总是会出现504错误

具体什么报错,有图片吗?
由于nginx默认的fastcgi进程响应缓冲区太小造成,这种情况下导致fastcgi进程被挂起,如果fastcgi服务队这个挂起处理不是很好的话,就可能提示“504 Gateway Time-out”错误。
PHP环境的配置问题,这里我们需要对php-fpm和nginx进行配置修改。因为这种情况下,也会出现“504 Gateway Time-out”错误提示。

④ 网页出现“504 Gateway Time-out”,没有其它信息是什么原因

对于一个Web开发者来说,504和502问题看上去好像很简单,每个人也可能都遇到过,但把问题说清楚并不那么容易

两台设备只要通过proxy或fastcgi协议互相通信,都会遇到504问题,比如Nginx+PHP-FPM会遇到;代理服务器连接后端Web服务也会遇到。本次遇到的场景属于后者,重点讲解代理导致的504问题。

那到底上面是504错误呢,看下wiki的引用:

4GatewayTimeout

The server was acting as a gateway or proxy and did not receive a timely response from the upstream server

意思就是一个网关或代理服务器能够连接后端服务器,但在读取服务器响应的时候超时了。遇到504问题一般是后端服务的问题,比如:

后端进程无故退出了(可能是代码异常,也可能是apache或nginx进程异常),导致代理服务器接收不到后端响应。

后端响应缓慢,导致代理服务器接收后端响应超时了。

服务器出现504 Gateway Time-out的解决方法!

按照上述可能的两个情况,逐一分析。

(1)x.php程序在特定的情况下,确实运行缓慢,但apache得access log在25秒左右的时候成功记录了200访问日志(由于php代码执行结束后才记录日志,一开始可能看不到access日志,导致开始误认为是后端程序的问题)。

(2)在x.php程序中记录应用日志,应用日志和access log日志一样,没有任何异常。

这说明代码并没有问题(但程序执行时间过长,有优化的空间),虽然在20秒产生504错误(由nginx处理),后端代码进程仍然继续运行,并在25秒成功运行。

排除这个问题后,最有可能是代理服务器觉得后端响应过于缓慢,主动关闭了该连接,是不是代理服务器设置的超时时间过短?由于公司的代理服务器(ssl nginx)是由专人维护的,看不到具体的配置,邮件询问了同事,得到回复如下:

proxy_read_timeout 60

proxy_send_timeout 60

首先看下 proxy_read_timeout 的介绍:

Defines a timeout for reading a response from the proxied server. The timeout is set only between two successive read operations, not for the transmission of the whole response. If the proxied server does not transmit anything within this time, the connection is closed.

最后将该值修改为:

proxy_read_timeout 300

proxy_send_timeout 300

问题最终解决了,肯定是proxy读取超时了,但具体的配置仍然疑惑。

进一步测试

可以进一步了解nginx的proxy配置,如果没有特殊的需求,配置非常简单。

server {

listen 443 ssl;

server_name www.simplehttps.com;

location / {

access_log access.log main;

error_log error.log;

proxy_pass http://127.0.0.1:8080;

proxy_read_timeout 5;

}

}

proxy_pass 可以是一个host、内部域名、ip地址,不用是一个对外的域名。

如果遇到超时问题,观察error.log日志,会看到以下错误:

2018/09/19 21:01:19 [error] 17034#0: *253 upstream timed out (110: Connection timed out) while reading response header from upstream, client: *.*.*.*, server: www.simplehttps.com, request: "GET /x.php HTTP/1.1", upstream: "http://*.*.*.*:8080/x.php", host: "www.simplehttps.com"

最后经过不断调整nginx的proxy_read_timeout指令和后端x.php程序的执行时间,也没有遇到工作中遇到的问题(20秒和60秒之间不对称的问题),只能后续继续留意了。

总结

1:网关和后端的超时时间(proxy或fastcgi)必须协调一致,在本案例中,apache/mod_php运行最长时间如果是30秒,那么nginx设置的超时时间必须大于30秒,因为必须考虑网络传输延时时间(非网络包总传输时间);而如果是nginx+php-fpm模式,nginx设置的超时时间相对简单,因为大部分情况下,nginx和php-fpm部署在同一台机器上,网络延时相对较短,但必须考虑php最大执行时间和php-fpm最大执行时间,

2:针对504错误,可认为都是http错误码,都是服务器端的错误(相对于客户端),在遇到相关错误的时候,必须根据错误码判断可能存在的问题,然后再针对性的排查,否则排查时间会增加很多。

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

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

⑥ 如何解决504 Gateway Time-out

浏览器打开时提示504 Gateway Time-out错误搜索,是由服务器未能及时响应客户端造成的。

解决方法:

1、如果是流量太大引起的,请增加服务器的流量。

2、如果是WEB服务器的设置引起的,请重新进行设置。

3、这个问题只能由服务器的管理员才能解决,客户端无法解决。

拓展资料

网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同时,网关也可以提供过滤和安全功能。大多数网关运行在OSI 7层协议的顶层--应用层。

⑦ 打开网页出现504是什么

打开网页出现504是通常意味着上游服务器已关闭(不响应网关 / 代理),而不是上游服务器和网关 / 代理在交换数据的协议上不一致。

正常情况下,是由于被请求服务器发送超时引起。服务器(不一定是 Web 服务器)正在作为一个网关或代理来完成客户(如您的浏览器或我们的 CheckUpDown 机器人)访问所需网址的请求。 为了完成您的 HTTP 请求, 该服务器访问一个上游服务器, 但没得到及时的响应。

(7)phpfpm504扩展阅读

解决方法

这个问题完全是由后端电脑之间 IP 通讯缓慢而产生, 可能包括 Web 服务器。 如果 Web 服务器由某一网站托管, 只有负责那个网站设置的人员才能解决这个问题。

网络上代理和缓存的使用日渐增加。尽管 CheckUpDown 机器人将总是试图 ' 钻入 ' 真正收管的网站的电脑, 但是 HTTP 请求实际上落在哪里并不能完全控制。 只要在处理 HTTP 请求的一连串电脑中, 有一个环节坏了,类似 504 的错误就很容易产生。

遇到 504 错误,与网站官方联系(例如通过电子邮件),此问题个人无法解决。需要网站方和互联网服务供应商 (ISP) 及 Web服务器软件供应商联络, 检查在其控制下的不同电脑之间的 IP 数据传输的流通状况。

参考资料来源:网络-504错误

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

504 gateway time-out怎么解决?
Nginx所报告的“504 gateway time-out”的含义指定的客户端所发出的的请求没有到达网关,换句话说就是请求没有到可以执行的PHP-fpm。
一般来说,Nginx报告的“504 gateway time-out”则是与nginx.conf的设置有关。
504 gateway time-out怎么解决
1.先查看Nginx配置

2.然后停掉192.168.9.19的相关服务,再访问:

3.修改源代码src/http/ngx_http_special_response.c,找到如下部分:

4.修改以下内容:

5.重新编译Nginx,然后再访问:

504 gateway time-out故障虽然是隐藏了,可只能骗得了别人一时,最终还得解决问题。无论是502错误还是504错误,都有可能是Nginx的相关错误,也可能是后端服务器的问题。那么我们就从这些方面入手了解一下问题的所在。
(1)首先需要确定的是后端服务器启动没有,当然在这里就是php-fpm进行启动没有。
(2)其次是确定php-fpm的worker进程是否够用。
(3)FastCGI缓存或代理的缓存情况。
(4)PHP执行时间长。

⑨ 访问php页面出现504 Gateway Timeout 怎么解决

情况一:由于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。
情况二解决办法修改完,我们需要重新加载php-fpm和nginx的配置,然后再进行测试。之后就没有发现“504 Gateway Time-out”错误,效果也还是不错的!

⑩ 访问php页面出现504 Gateway Timeout 怎么解决

一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out
现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K
默认的fastcgi进程响应的缓冲区是8K, 我们可以设置大点
在nginx.conf里, 加入:
fastcgi_buffers 8 128k
这表示设置fastcgi缓冲区为8×128k
当然如果在进行某一项即时的操作, 可能需要nginx的超时参数调大点, 例如设置成60秒:
send_timeout 60;
只是调整了这两个参数, 结果就是没有再显示那个超时, 可以说效果不错
另一篇文章
首先是更改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的情况,算是达到效果了。
另外,php-fpm的默认静态处理方式会使得php-cgi的进程长期占用内存而无法释放,这也是导致nginx出错的原因之一,因此可以将php-fpm的处理方式改成apache模式。
apache-like

阅读全文

与phpfpm504相关的资料

热点内容
怎么把电脑里文件夹挪出来 浏览:693
java流程处理 浏览:683
ftp创建本地文件夹 浏览:659
腰椎第一节压缩 浏览:738
xp去掉加密属性 浏览:117
2345怎么压缩文件 浏览:982
迷你夺宝新算法 浏览:407
服务器如何防止木马控制 浏览:715
压缩空气用电磁阀 浏览:742
微信为什么不能设置加密认证 浏览:672
邓伦参加密室逃脱视频 浏览:391
音频压缩编码标准 浏览:300
常提到的app是表示什么 浏览:261
天津程序员传销 浏览:349
下班之后的程序员 浏览:73
检测支持ssl加密算法 浏览:344
衢州发布新闻什么APP 浏览:85
中国移动长沙dns服务器地址 浏览:252
wifi密码加密了怎么破解吗 浏览:599
linux命令cpu使用率 浏览:70