PHP 请求超时,不晓得具体是哪里的配置? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
s609926202
V2EX    PHP

PHP 请求超时,不晓得具体是哪里的配置?

  •  
  •   s609926202 2021-08-04 16:52:12 +08:00 4094 次点击
    这是一个创建于 1528 天前的主题,其中的信息可能已经有所发展或是发生改变。
    每一条 post 请求都是在 10s 时中断,后台返回 502 Bad Gateway 。然后响应头显示 keep-alive: timeout 4

    但是,在 php.ini 的 max_execution_time: 300,以及 php-fpm.conf 中的 request_terminate_timeout: 0 均已配置,同时也没有报错日志。

    按理,服务器应该不会有 10s 的限制,数据库( mysql )更不会有。。

    所以是哪里的配置。。好生奇怪。
    第 1 条附言    2021-08-05 09:04:12 +08:00

    贴一下具体配置(超时部分的)。

    Nginx:

    http { keepalive_timeout 600; tcp_nodelay on; fastcgi_connect_timeout 600; fastcgi_send_timeout 600; fastcgi_read_timeout 600; } 

    PHP:

    max_execution_time = 600 max_input_time = 60 memory_limit = 512M 

    PHP-FPM:

    request_terminate_timeout = 0 request_slowlog_timeout = 0 slowlog = /var/log/slow.log 
    第 2 条附言    2021-09-07 16:27:00 +08:00
    原因:Clash VPN 影响的。。。
    32 条回复    2021-09-07 16:26:29 +08:00
    zm8m93Q1e5otOC69
        1
    zm8m93Q1e5otOC69  
       2021-08-04 16:54:34 +08:00 via Android
    nginx ?
    GG668v26Fd55CP5W
        2
    GG668v26Fd55CP5W  
       2021-08-04 16:54:43 +08:00 via iPhone
    看看 nginx 或者 apache 的日志
    94
        3
    94  
       2021-08-04 16:58:25 +08:00
    如果是前端 Ajax 请求返回超时,那么你试试看用 postman 请求。
    如果没有超时那就是前端部分设置了超时时间。
    garlics
        4
    garlics  
       2021-08-04 17:08:50 +08:00
    有可能是框架里的其他地方设置了 max_execution_time,在一个地方加上 ini_set('max_execution_time', '0')试试
    PUR4uF5Oq0z0YN9r
        5
    PUR4uF5Oq0z0YN9r  
       2021-08-04 17:23:16 +08:00
    换语言吧, php 中间套着 nginx 代理, 请求环节各种乱七八糟的配置, 稍有不慎就出问题
    wowbaby
        6
    wowbaby  
       2021-08-04 17:36:05 +08:00
    @sky3hao php 没有这么不堪吧
    s609926202
        7
    s609926202  
    OP
       2021-08-04 17:38:20 +08:00
    @falcon05 nginx 日志显示的状态码为 499
    s609926202
        8
    s609926202  
    OP
       2021-08-04 17:38:49 +08:00
    @beichenhpy 感觉不太是 ngxin 的原因,nginx 部分的超时也设置了,且远超 10s
    suzic
        9
    suzic  
       2021-08-04 17:58:03 +08:00 via Android
    有用 apache 吗?这个问题我之前好像也遇到过
    keepeye
        10
    keepeye  
       2021-08-04 18:04:23 +08:00
    nginx 也要设置一下 fastcgi 的超时时间。
    hfywy
        11
    hfywy  
       2021-08-04 18:09:51 +08:00
    @s609926202 499 是“client has closed connection”,可能是客户端设置了超时时间
    fatttt
        12
    fatttt  
       2021-08-04 18:15:30 +08:00   1
    @sky3hao 我也觉得把 php 换掉比较好。 额外依赖的东西有点多。nginx,fpm 啥的,如果用 prometheus 监控还要给他写 exporter,多进程并发模型在容器化后 qps 一上来基本就凉凉。
    liuxu
        13
    liuxu  
       2021-08-04 18:18:54 +08:00   3
    @sky3hao nginx 前置反向代理其他语言也要啊,你自己菜不能怪 php 吧
    ElmerZhang
        15
    ElmerZhang  
       2021-08-04 18:45:38 +08:00
    502 是 nginx 与 php-fpm 建立连接成功后,php 没有正常返回就关闭了连接
    有可能是 php 进程 segmentfault 了
    php 进程池如果满了好像也会 502
    另外还可以用 php -i 或者 phpinfo 找找哪个设置项上还有 10s 的超时设置
    ElmerZhang
        16
    ElmerZhang  
       2021-08-04 18:46:49 +08:00
    这个超时肯定不是在 nginx 那边,如果是 nginx 超时的话会返回 504
    PUR4uF5Oq0z0YN9r
        17
    PUR4uF5Oq0z0YN9r  
       2021-08-04 19:12:09 +08:00
    @liuxu 那你加油哦, 别换
    Vectorst
        18
    Vectorst  
       2021-08-04 19:21:22 +08:00
    服务器是自己的吗?会不会是对方服务器对你做限制了
    liuxu
        19
    liuxu  
       2021-08-04 21:12:36 +08:00
    @sky3hao 我 php,java,golang,rust 都在写,写个代码你还能写出了优越感
    yogogo
        20
    yogogo  
       2021-08-04 21:20:11 +08:00
    @liuxu 有些就是天生黑 PHP 不管有没有写过 PHP 。楼主 nginx 配置、PHP 框架、php.ini 都没写出来,那些就说 PHP 语言有问题的,你们确定写过 PHP ?
    kidlj
        21
    kidlj  
       2021-08-04 21:24:05 +08:00
    499 是客户端超时,就是访问接口的 app 或 curl 的超时时间。
    thinkingbullet
        22
    thinkingbullet  
       2021-08-04 21:46:29 +08:00
    nginx 的 facgi 也有超时时间的设置
    gidot
        23
    gidot  
       2021-08-04 21:53:35 +08:00
    看看慢查询日志,PHP 和 mysql 都看一下,特别是最开头的几条。有时 php 脚本服务器和数据库服务器直接网络不通畅时,也会 502,所以也要拍查一下 PHP 的错误日志,除了数据库之外,连接第三方服务超时也会 502 。

    最后就是检查并发,比如 PHP 你只开了 60 个进程,如果这时候同时有 100 个请求,就会有 40 个在排队等待,也会造成超时。
    akira
        24
    akira  
       2021-08-04 21:58:55 +08:00
    大概率就是 nginx 那边 的超时强行关闭链接了
    ivanfjz
        25
    ivanfjz  
       2021-08-04 22:01:20 +08:00
    nginx 会把请求转发给 php-fpm, 然后等待 php-fpm 返回数据, 这个等待是有时间限制的, 你的服务器 nginx 配置限制了 10 秒. 你可以百度下 nginx fastcgi timeout 这 3 个关键词检索下, fastcgi_read_timeout(我猜修改这个配置就可以)
    Liang
        26
    Liang  
       2021-08-04 22:16:49 +08:00 via iPhone   1
    @sky3hao 我真的觉得你有问题,别人提问,你就叫别人换语言。难道你换了别的语言就没其他问题?意念编程?
    zhuzhibin
        27
    zhuzhibin  
       2021-08-04 23:29:40 +08:00
    进来就算骂的哈哈,动不动就换语言吧,还没点进来就想到了会有很多这种评论 233
    pytth
        28
    pytth  
       2021-08-04 23:55:06 +08:00 via iPhone
    天天有人黑 php,php 没有做错什么,只是时代变了而已。
    way2create"
        29
    way2create  
       2021-08-05 08:41:51 +08:00
    @Liang 看看他发帖回帖记录就明白了 有句话说的好 x 改不了 xx
    GeorgeGalway
        30
    GeorgeGalway  
       2021-08-13 16:15:32 +08:00
    @sky3hao 只有彩笔才会说换语言这种梗
    zjttfs
        31
    zjttfs  
       2021-09-07 16:23:53 +08:00
    我也碰到这问题,什么都配置了, 10s 就断
    s609926202
        32
    s609926202  
    OP
       2021-09-07 16:26:29 +08:00   1
    @zjttfs 我的是 VPN 影响的,可以参考一下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5497 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 08:32 PVG 16:32 LAX 01:32 JFK 04:32
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86