• 仙女次元跤流群仙女次元跤流群:134473169
  • 仙女次元总群仙女次元总群:591714098
  • 响应国家号召,严格把控内容将强审核机制,营造绿色上网环境
  • 发布页:xacgn.cn
  • 谦谦君子温润如玉 不忘初心方得始终!
  • 推荐使用谷歌/360急速/夸克/浏览器访问本站
  • 如不能登录重新注册即可

PHP/Nginx超时优化 (解决”502 Bad Gateway””504 Gateway Time-out”)

仙女日报 泷泽萝拉 2个月前 (02-07) 213次浏览 已收录 0个评论 扫描二维码

PHP/Nginx超时优化 (解决

一、Nginx的超时配置
1、fastcgi_connct_timeout 60
Nginx和fastcgi进程建立连接的超时时间,默认60秒,如果超过了这个时间就断开连接。

2、fastcgi_read_timeout 300
和fastcgi进程建立连接后获得fastcgi进程响应的超时时间,默认60秒,如果超过了这个时间都没有获得响应就断开连接。我们经常碰到的是’504 Gateway Time-out‘,就是因为后端连接没有在超时时间内返回数据导致的。我们经常碰到的是’502 Bad Gateway‘,是因为fastcig进程报错,导致连接断开。

3、fastcgi_send_timeout 300
Nginx向fastcgi进程发送请求的超时时间,默认60秒,如果超过了这个时间都没有发送完就断开连接。可以通过上传比较大的文件,就会出现超时,然后就会返回’504 Gateway Time-out‘。

二、PHPPHP-FPM 的超时配置

1、max_execution_time 300
这个参数是在php.ini中设置的,说实在的这个参数没有什么太大的意义,因为这个300秒的超时时间仅仅是统计本身代码的执行时间,不包括网络请求,系统调用,数据库查询,sleep()等的时间,如果超过这个时间会产生一个’Fatal error: Maximum execution time’的错误,然后返回的是’500 Internal Server Error’。我们程序大部分的时间都是花在网络请求,数据库查询方面的。

2、request_terminate_timeout 0
这个参数是在php-fpm中设置的,这个超时时间就是整个fastcgi花费的所有时间,这个和max_execution_time最大的不同,如果总时间超过了,会直接将FPM进程kill掉,然后返回’502 Bad Gateway‘。很多人认为配置了这个参数max_execution_time就失效了,实际不是的,先达到哪个的超时时间就哪个配置起作用的。

建议是不要开启这个参数,因为如果你某个程序超时了,进程直接kill掉,你的数据完整性就没有办法保证了,可以在nginx那边做连接超时的控制和做好程序请求第三方资源超时时间的控制。

三、接口请求方面的超时设置
这部分要特别注意,在没有什么并发量的时候没有什么问题,在并发量大的时候,如果有些对接的第三方系统挂了或是处理速度很慢了,你的FPM进程很快就会用完,然后就是各种502,然后很有可能的就是系统崩溃了。我们在框架层面,对需要用到的请求方法做了统一的封装。

原文链接:https://www.jianshu.com/p/bf7d3e0784a7


Macgn仙女次元 , 版权所有丨本站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP/Nginx超时优化 (解决”502 Bad Gateway””504 Gateway Time-out”) 如有侵权请联系mxssacg@qq.com 我们将在第一时间删除谦谦君子 温润如玉 不忘初心 方得始终 突破自己 萌乡绅士 仙女裙:134473169 仙女裙1:683432256 仙女次元总群:591714098
喜欢 (0)
[x]
分享 (0)
泷泽萝拉
关于作者:
谦谦君子 温润如玉 不忘初心 方得始终

您必须 登录 才能发表评论!