关于nginx报499的问题排查分析
关于nginx报499的问题排查分析
- 499 错误(官方解释:)
- 分析缘由
- nginx方分析
- tomcat方分析
- 结论
499 错误(官方解释:)
ngx_string(ngx_http_error_495_page), /* 495, https certificate error*/
ngx_string(ngx_http_error_496_page), /* 496, https no certificate */
ngx_string(ngx_http_error_497_page), /* 497, http to https */
ngx_string(ngx_http_error_404_page), /* 498, canceled */
ngx_null_string, /* 499, client has closed connection */
499,这个状态码并不是http协议中定义的status code,而是nginx自己定义的一个状态码;旨在说明客户端关闭请求连接。
分析缘由
具体原因可能为:
- 客户端请求速度过快,触发了nginx保护机制,直接返回499状态码(nignx做proxy时,频繁的post,nginx认为不安全,记录499)。
- 客户端主动关闭了连接(客户端请求服务端时,服务端响应慢,客户端觉得时间长主动关闭了连接, 比如浏览器(客户端)请求一个接口觉得很慢,就关掉了浏览器、 nginx做proxy的时候,后端执行时间长(如执行sql慢,调用其它接口慢)等,应该从后端去优化下)。
- 证书错误。
nginx方分析
当客户端主动断开连接时,nginx会基于 proxy_ignore_client_abort : [on|off]
参数来决定应对行为。(如果客户端断开请求,也保持后端的下载)
默认值为off,客户端断开连接时,nginx也断开与后端服务器的链接,并记录本次请求状态码为499。
当配置为on时,客户端断开连接后,nginx依然继续等待后端服务器的响应,并正常记录本次请求的状态码为2xx、4xx
等,不会记录为499。
tomcat方分析
无论nginx是否断开,tomcat都会继续处理请求。直到写入返回数据时,如果发现请求已断开,会抛ClientAbortException
。
结论
目前生产环境nginx的配置,就是默认off的。
如果配置为on的话,会消除499请求,但是实际上对用户体验没有影响(因为用户已经断开链接),反而会加大nginx的负担(nginx会持续等待超长处理时间的请求)。
所以应该重点通过提高应用响应时间,来降低499的请求数量。
参考:
http499状态码请求排查
服务器排障 之 nginx 499 错误的解决
关于nginx报499的问题排查分析相关推荐
- 复工后一次百万长连接压测Nginx与OOM的问题排查分析,我裂开了!
在最近的一次百万长连接压测中,32C 128G 的四台 Nginx 频繁出现 OOM,出现问题时的内存监控如下所示. 排查的过程记录如下. 现象描述 这是一个 websocket 百万长连接收发消息的 ...
- RTMP视频推流功能组件EasyRTMP-HIK DEMO版本运行报错0xc000007b问题排查分析
TSINGSEE青犀视频在视频流媒体开发行业深耕多年以来,不仅开发了轻便稳定的流媒体平台EasyNVR.EasyCVR等,还开发了一些视频推流或者同屏的辅助组件.比如EasyRTMP就是一套调用简单. ...
- 一次百万长连接压测 Nginx OOM 的问题排查分析
转载来源 : 一次百万长连接压测 Nginx OOM 的问题排查分析 : https://mp.weixin.qq.com/s/thSoTHeS26Y4Nf7ryUtygg 在最近的一次百万长连接压测 ...
- Windows服务器流量异常排查分析(Nginx日志分析):Web Log Expert 和 GlassWire 的使用
最近某台阿里云服务器流量带宽突然超负荷运转,想了想,难道被攻击了?不应该会用户突然暴增啊!?于是开始排查流量来源. 首先,用 GlassWire 监听服务器的那个应用占用了大量的流量.GlassWir ...
- nginx 获取body参数_日志分析系列(外传二):Nginx日志统一化
本系列故事纯属虚构,如有雷同实属巧合 为了完成对Nginx服务器的日志分析,小B对Q公司的Nginx日志做了统一化要求.下面是小B在统一化过程中遇到的一些知识点: Nginx日志与字段解析 Q公司的N ...
- 基于图数据的研报词关联之聚合分析
基于图数据的研报词关联之聚合分析 基于图数据的研报关键词聚合分析 一.算法介绍 二.数据模型 三.计算关键词上下文聚合相似性 四.关键词上下文聚合性能测试 五.计算聚合相似性[CYPHER优化] 六. ...
- nginx报http400错误解决方法
nginx报http400错误解决方法 参考文章: (1)nginx报http400错误解决方法 (2)https://www.cnblogs.com/hunter-zyg/p/4809708.htm ...
- nginx 报错 99: Cannot assign requested address
为什么80%的码农都做不了架构师?>>> nginx 报错 99: Cannot assign requested address net.ipv4.ip_local_port ...
- Nginx报错:nginx: [emerg] CreateFile() nginx.conf“ failed (3: The system cannot find the path specified
windows下启动nginx报错: nginx: [emerg] CreateFile() "D:\桌面\nginx-1.12.0/conf/nginx.conf" failed ...
- [nginx报错]---unknown directive chunkin in /XXXXX/XXXXXX:XX的几种解决方式
问题: nginx报错:unknown directive "chunkin" in /XXXXX/XXXXXX:XX 解决: 当出现unknown directive,一般有个反 ...
最新文章
- 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...
- 查看mysql编译参数
- 【视频】vue组件之slot插槽
- 论文浅尝 - ACL2021 | 探讨跨句事件联合抽取问题
- 微信小程序和传统网页开发的区别
- autojs命令代码大全_各个主流品牌手机的命令代码大全,安卓工程模式的指令大全!...
- shell中设置文字输出的颜色及字体格式
- 还在用tm?你OUT啦!
- 索尼音乐客户端linux,索尼将为 Linux 带来设备内存不足的解决方案,
- 多个容器一起打包_Docker从入门到掉坑(三):容器太多,操作好麻烦
- linux convert命令把gif转jpg
- linux获取笔记本摄像头视频,Linux下利用Opencv打开笔记本摄像头问题
- API的防篡改和防重放机制
- 量子计算机关键技术有哪些,实现量子通信的关键技术有哪些?
- android 标题字体大小,如何修改android studio标题字体大小
- 【矩阵论笔记】零化多项式
- Python虚拟环境——virtualenv
- python架构师是做什么的_【图片】架构师速成-一个10多年架构师的总结_架构师吧_百度贴吧...
- FPGA期末项目 | 数字时钟
- lyapunov函数