nginx499错误

作者: goodx2study | 来源:发表于2018-06-11 23:04 被阅读0次

1、nginx报499,php慢日志,数量基本一致,每分钟1000+

2、相同版本程序,不同的是机房和后端服务。

首先看php慢日志,定位到具体的慢日志都是curl后端数据服务器慢,查看curl耗时日志,发现有一台数据服务器curl返回结果特别慢。

但是为什么会报499错误?之前遇到的curl慢导致的结果都是504timeout。

网上搜索http code 499,大概获取到的信息是

1、499是nginx自定义的httpcode

2、一般都是由客户端主动断开连接导致的

一番搜索下来并没有什么实质性结果。

转移方向从配置文件入手。

慢日志和499日志量基本一致,推断主要可能是超时引起的问题。

1、查看nginx的fastcgi配置的超时选项

        fastcgi_connect_timeout 5s;

        fastcgi_send_timeout 5s;

        fastcgi_read_timeout 5s;

 2、查看php-fpm配置

    pm = static

    pm.max_children = 500

以前遇到过504,是因为fastcgi_read_timeout 超时。看到fpm的配置,子进程是静态的,进而推测499 是由于每个请求耗时过长,导致fpm的子进程被用完了,fastcgi_connect_timeout 超时。

为证实这个推测,测试环境模拟fastcgi_connect_timeout。

将php-fpm的配置改成

pm = static

pm.max_children = 2

重启php-fpm

将php脚本改为

<?php

    sleep(10);

    echo 11;

curl 指定php脚本。观察curl结果输出和nginx日志。

发现3个curl命令在10秒或者10几秒后都能正常输出。推测失败。。。

多次尝试失败后,在curl等待时ctrl+c,日志中出现了499,结合之前搜索到的499产生原因,基本确认了499是由于响应太慢导致客户端直接断开连接了。

tcpdump抓包结果

相关文章

  • nginx499错误

    1、nginx报499,php慢日志,数量基本一致,每分钟1000+ 2、相同版本程序,不同的是机房和后端服务。 ...

  • 09 错误处理

    错误分类 语法错误 运行时错误:提示性错误,警告性错误,致命性错误 逻辑错误 错误分级 php语言将各种错误作了不...

  • 错误监控

    前端错误的分类 即时运行错误—代码错误 资源加载错误(比如图片加载错误,CSS加载错误,JS加载错误等) 错误的捕...

  • 前端 错误监控

    错误类型: (1)代码错误/即时错误:(2)资源加载错误 错误监控方法 即时错误:try....catch.......

  • 错误监控

    一、前端错误的分类 即使运行错误(代码错误) 资源加载错误 二、错误的捕获方式 即使运行错误(代码错误) try...

  • 异常处理

    语法错误:(错误) 书写错误,可以通过编辑器发现错误(NameError)通过错误定位,直接修改 运行错误:(异常...

  • 错误监控

    前端错误的分类 即时运行错误(代码错误) 资源加载错误 错误的调试方式 错误的捕获方式 即时运行错误的捕获方式 t...

  • 华文未来出版干货分享第六十四弹:图书的三审到底是在审什么?

    初审: ①改正书稿中出现的字词错误、读音错误、知识性错误、语法错误、逻辑错误、欧化错误、观点错误等。 ②统一全书体...

  • 爱情是一场错误

    太平洋错误的风 刮来了南方错误的雨 少年错误的出游 遇见了错误的姑娘 于是,他俩 错误地初见 错误地交谈 错误地表...

  • 前端错误监控

    怎么做错误监控?如何保证产品质量? 错误分类 即时运行错误,代码错误 资源加载错误 错误的捕获方式 即时运行错误捕...

网友评论

    本文标题:nginx499错误

    本文链接:https://www.haomeiwen.com/subject/aitvsftx.html