分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

php-fpm超时时间设置request_terminate_timeout分析

发布时间:2023-09-06 01:53责任编辑:彭小芳关键词:暂无标签
之前发现一个php配置之后关于返回500和502的问题,今天看到一个兄弟写的非常不错,记录一下。
 
php日志中有一条超时的日志,但是我request_terminate_timeout中设置的是0,理论上应该没有超时时间才对。
 
PHP Fatal error:  Maximum execution time of 30 seconds exceeded in ...
 
OK,先列出现在的配置:
 
php-fpm:
request_terminate_timeout = 0
php.ini:
max_execution_time = 30
 
先查阅了一下php-fpm文件中关于request_terminate_timeout的注释
 
; The timeout for serving a single request after which the worker process will
; be killed. This option should be used when the ‘max_execution_time‘ ini option
; does not stop script execution for some reason. A value of ‘0‘ means ‘off‘.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
 
 
这个注释说明了,request_terminate_timeout 适用于,当max_execution_time由于某种原因无法终止脚本的时候,会把这个php-fpm请求干掉。
再看看max_execution_time的注释:这设置了脚本被解析器中止之前允许的最大执行时间,默认是30s。看样子,我这个请求应该是被max_execution_time这个设置干掉了。
 
好吧,不死心,做了一个实验:
 
php-fpm request_terminate_timeout 设置015
php.ini max_execution_time 设置3030
执行结果php有Fatal error超时日志,http状态码为500php无Fatal error超时日志,http状态码为502,php-fpm日志中有杀掉子进程日志
 
好吧,结论是web请求php执行时间受到2方面控制,一个是php.ini的max_execution_time(要注意的是sleep,http请求等待响应的时间是不算的,这里算的是真正的执行时间),另一个是php-fpm request_terminate_timeout 设置,这个算的是请求开始n秒。

php-fpm超时时间设置request_terminate_timeout分析

原文地址:https://www.cnblogs.com/hurry-up/p/9013389.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved