php 499,nginx499错误
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脚本改为
sleep(10);
echo 11;
curl 指定php脚本。观察curl结果输出和nginx日志。
发现3个curl命令在10秒或者10几秒后都能正常输出。推测失败。。。
多次尝试失败后,在curl等待时ctrl+c,日志中出现了499,结合之前搜索到的499产生原因,基本确认了499是由于响应太慢导致客户端直接断开连接了。
tcpdump抓包结果
php 499,nginx499错误相关推荐
- HTTP 499 状态码 nginx下 499错误
日志记录中HTTP状态码出现499错误有多种情况,我遇到的一种情况是nginx反代到一个永远打不开的后端,就这样了,日志状态记录是499.发送字节数是0. 老是有用户反映网站系统时好时坏,因为线上的产 ...
- 400错误是什么原因_499错误是什么?499错误的原因及解决方法
HTTP状态码出现499错误有多种情况,499错误是什么?下面我们来学习Nginx 499错误的原因及解决方法. 日志记录中HTTP状态码出现499错误有多种情况,比如nginx反代到一个永远打不 ...
- 自己整理的面试笔记(仅供参考 , 有错误请大家多多指教 , 谢谢)
javaScript,jQuery,vue的区别: 1.javaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互,JavaScrip ...
- nginx HTTP 错误码499的含义
原文地址:http://www.blogkid.net/archives/2582.html Web服务器在用着nginx,在日志中偶尔会看到有499这个错误.开始没想明白到底是什么意思,在Twitt ...
- springboot 文件服务器_Spring Boot整合阿里OSS文件储存服务器详细教程
一.准备工作 开发工具idea,jdk1.8,测试工具 postman 注册阿里云服务器并创建oss储存库, 创建Spring boot空项目 二. 引入pom.xml org.springframe ...
- [LCS]LCS2005服务器应用程序
摘要:LCS2005服务器应用程序可以通过基于.NET Framework的服务器API对SIP协议栈进行底层访问,使用这些API开发的服务器应用程序能够实现诸如自定义消息筛选.基于规则的路由和消息记 ...
- 学姐百度实习面经(轻松拿offer)
本系列历史文章: 学姐,来挑战字节最牛部门 最强阿里巴巴历年经典面试题汇总:C++研发岗 关于我的那些面经--百度后端(附答案) <关于我的那些面经>滴滴Java岗(附答案) 朋友面神策数 ...
- HTTP状态码表格汇总
HTTP状态码 一.介绍 状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果.借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误. [注意] 状态码是:服务端向客户端发送 ...
- 【温故而知新】HTTP 报文
HTTP 报文是在 HTTP 应用程序之间发送的数据块.这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义. 报文流 报文在客户端.服务器和代理之间的流动称为报文流. HTTP 使用 ...
- HTTP协议从入门到大牛,初识HTTP协议(学习笔记)
HTTP数据传输协议 当访问一个网页时,浏览器会向服务器发起一条HTTP请求,接着服务器会去寻找相应的资源,如果请求成功,就会把这个对象,对象类型,对象长度以及其他的信息放在HTTP响应中,发送给客户 ...
最新文章
- 使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。...
- AI芯片大战已然打响,国内外巨头抢占万亿智能家居市场
- 崔希凡javaWeb笔记day01~day03(2016年5月20日20:33:54)
- 【设计和算法分析】3、二进制搜索
- aspen和python一起使用_python-将$cond语句与$project一起使用并在PyMon...
- boost::hana::make用法的测试程序
- po 时不生效时, 不要用点方法
- ueditor工具栏弹出html,UEditor工具栏上自定义按钮、图标、事件、窗口页面
- 【clickhouse】clickhouse的系统表
- 【最新】Oracle官网Java SE各个版本JDK下载位置
- java home_JAVA_HOME配置
- C语言递归方法求解背包问题
- 从周易六十四卦看软件架构真好懂!女朋友这下不用担心我的学习了【程序员编程】
- 毕业论文ppt的研究方法及过程计算机专业,计算思维原理研究与实现数据组织毕业论文4喜欢就下吧(全文完整版)...
- 种草营销怎么玩?如何借小红书KOL、KOC笔记种草提升转化效果
- 怎么学习单片机编程?单片机基础入门内容有哪些
- nodejs和java对比_nodejs与java的区别是什么?
- ps参考线设置,ps参考线定位,ps参考线怎么用
- 算法与数据结构07:前缀树,计数排序与桶排序
- Rich feature hierarchies for accurate object detection and semantic segmentation
热门文章
- aspcms用mysql_aspcms分类列表调用的几个实例
- 三星android手机工程模式设置中文,三星工程模式怎么进入?三星手机进入工程模式方法...
- epson连接计算机后无法打印,电脑连接爱普生打印机后无法打印如何解决
- Learn Git Branching 答案
- 【自动化营销】跨境电商高效进行WhatsApp营销技巧!
- SEO工具脚本,Python百度下拉框关键词采集工具
- python转换迅雷地址为http地址
- 从“制造大国”走向“制造强国”——“两化深度融合”是必然选择 考题答案
- 2018-2019-1 20165320 《信息安全系统设计基础》 缓冲区溢出漏洞实验
- HTTP协议 (三) 代理