nginx 日志记录状态码 499 问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liuzhedash
V2EX    NGINX

nginx 日志记录状态码 499 问题

  •  
  •   liuzhedash 2016-02-16 19:06:33 +08:00 8679 次点击
    这是一个创建于 3528 天前的主题,其中的信息可能已经有所发展或是发生改变。

    系统组成: nginx 1.6,php5.3.28 ,对应配置:

    location ~ [^/]\.php(/|$)
    {
    # comment try_files $uri =404; to enable pathinfo
    try_files $uri =404;
    fastcgi_pass unix:/tmp/php-cgi52.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    #include pathinfo.conf;
    }

    nginx 日志摘要

    221.11.61.197 - - [16/Feb/2016:18:46:38 +0800] "GET /api/agent/registerAgent HTTP/1.1" 10.954 - -499 0 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13D15 MicroMessenger/6.3.13 NetType/3G+ Language/zh_CN" -

    其中的

    10.954 - - 499

    分别是:

    $request_time $upstream_response_time $upstream_status $status

    $request_time 从几十秒到一秒多不等,$upstream_response_time $upstream_status 为"-"直观效果就是某几个手机一直打不开页面,其他的手机电脑完全正常。
    研究了半天没有任何思路,请大家赐教

    15 条回复    2016-02-17 14:17:47 +08:00
    jkeylu
        1
    jkeylu  
       2016-02-16 19:51:55 +08:00 via Android
    499 是用户主动断开连接
    就是请求页面长时间没有返回,用户等不急了,把页面关了
    $upstream_response_time 就是 nginx 请求你的 PHP 程序到返回数据的时间,没等到返回数据,用户就关闭页面里,所以是 - ,多半是你程序问题
    会不会某个时段用户访问比较集中啊,导致程序运行缓慢之类的
    liuzhedash
        2
    liuzhedash  
    OP
       2016-02-16 20:10:25 +08:00
    @jkeylu 同样的页面,其他手机 /PC 访问是正常的,速度也很快,现在发现重启 php-fpm 后可以立刻使不能访问的手机可以正常打开页面。
    服务器负载非常低,基本是空载
    Andy1999
        3
    Andy1999  
       2016-02-16 20:12:18 +08:00 via iPhone
    PHP5.3 貌似低了点 可以无缝升级到 PHP5.6.17 吧
    lhbc
        4
    lhbc  
       2016-02-16 20:13:21 +08:00
    代码有问题
    php 开 slowlog 看下吧
    liuzhedash
        5
    liuzhedash  
    OP
       2016-02-16 20:19:27 +08:00
    @lhbc slowlog 没有东西, sql 慢查询也没有,代码里调试得到的结论是:有问题的请求根本没把 php 调起来。事实上之前这个问题从来没有出现过
    liuzhedash
        6
    liuzhedash  
    OP
       2016-02-16 20:20:12 +08:00
    @Andy1999 已经加了一台实例,准备迁移过去用高版本 php 和 nginx 试试看
    jwnlive
        7
    jwnlive  
       2016-02-16 20:46:09 +08:00
    php err 有什么报错吗
    看下数据库的链接正常不
    liuzhedash
        8
    liuzhedash  
    OP
       2016-02-16 21:22:38 +08:00
    @jwnlive 没有什么报错,数据库也正常,其他的手机 PC 访问同样的页面都是 OK 的
    liuzhedash
        9
    liuzhedash  
    OP
       2016-02-16 22:11:43 +08:00
    一个新的线索:关闭微信(这个场景的浏览器是微信内置浏览器 ),再次打开,就可以正常打开页面
    squid157
        10
    squid157  
       2016-02-16 22:14:46 +08:00 via iPhone
    @liuzhedash 微信内置浏览器并不好 debug 啊 我也来围观学习一下
    liuzhedash
        11
    liuzhedash  
    OP
       2016-02-16 22:41:59 +08:00
    php-fpm 重启可以使得等待状态的请求立刻 502 ,所以怀疑问题在 php-fpm 这里
    tntsec
        12
    tntsec  
       2016-02-16 22:50:44 +08:00
    搜索相关问题一直找不到解决方法,最后终于在 google 上搜索到一英文论坛上有关于此错误的解决方法:
    proxy_ignore_client_abort on;
    Don ’ t know if this is safe.
    就是说要配置参数 proxy_ignore_client_abort on;
    表示代理服务端不要主要主动关闭客户端连接。

    另外把 php-fpm 进程数开到最大
    ryd994
        13
    ryd994  
       2016-02-16 23:18:54 +08:00
    这个是客户端关闭连接时,不关闭到上游的连接,只丢弃上游的响应
    这个很不 safe
    进程数随便调最大也是逗,就等着被 CC 卡死吧
    ToughGuy
        14
    ToughGuy  
       2016-02-17 09:13:57 +08:00
    似乎是某些异步请求会出现 499 错误

    fastcgi_ignore_client_abort on;
    proxy_ignore_client_abort on;

    这两个参数可能有用。
    liuzhedash
        15
    liuzhedash  
    OP
       2016-02-17 14:17:47 +08:00
    谢谢大家的指导,已经确认是后端 php 代码对 session 锁处理不当导致执行超时,和 nginx php-fpm 无关
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2724 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:09 PVG 23:09 LAX 08:09 JFK 11:09
    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