关于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自己定义的一个状态码;旨在说明客户端关闭请求连接。

分析缘由

具体原因可能为:

  1. 客户端请求速度过快,触发了nginx保护机制,直接返回499状态码(nignx做proxy时,频繁的post,nginx认为不安全,记录499)。
  2. 客户端主动关闭了连接(客户端请求服务端时,服务端响应慢,客户端觉得时间长主动关闭了连接, 比如浏览器(客户端)请求一个接口觉得很慢,就关掉了浏览器、 nginx做proxy的时候,后端执行时间长(如执行sql慢,调用其它接口慢)等,应该从后端去优化下)。
  3. 证书错误。

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的问题排查分析相关推荐

  1. 复工后一次百万长连接压测Nginx与OOM的问题排查分析,我裂开了!

    在最近的一次百万长连接压测中,32C 128G 的四台 Nginx 频繁出现 OOM,出现问题时的内存监控如下所示. 排查的过程记录如下. 现象描述 这是一个 websocket 百万长连接收发消息的 ...

  2. RTMP视频推流功能组件EasyRTMP-HIK DEMO版本运行报错0xc000007b问题排查分析

    TSINGSEE青犀视频在视频流媒体开发行业深耕多年以来,不仅开发了轻便稳定的流媒体平台EasyNVR.EasyCVR等,还开发了一些视频推流或者同屏的辅助组件.比如EasyRTMP就是一套调用简单. ...

  3. 一次百万长连接压测 Nginx OOM 的问题排查分析

    转载来源 : 一次百万长连接压测 Nginx OOM 的问题排查分析 : https://mp.weixin.qq.com/s/thSoTHeS26Y4Nf7ryUtygg 在最近的一次百万长连接压测 ...

  4. Windows服务器流量异常排查分析(Nginx日志分析):Web Log Expert 和 GlassWire 的使用

    最近某台阿里云服务器流量带宽突然超负荷运转,想了想,难道被攻击了?不应该会用户突然暴增啊!?于是开始排查流量来源. 首先,用 GlassWire 监听服务器的那个应用占用了大量的流量.GlassWir ...

  5. nginx 获取body参数_日志分析系列(外传二):Nginx日志统一化

    本系列故事纯属虚构,如有雷同实属巧合 为了完成对Nginx服务器的日志分析,小B对Q公司的Nginx日志做了统一化要求.下面是小B在统一化过程中遇到的一些知识点: Nginx日志与字段解析 Q公司的N ...

  6. 基于图数据的研报词关联之聚合分析

    基于图数据的研报词关联之聚合分析 基于图数据的研报关键词聚合分析 一.算法介绍 二.数据模型 三.计算关键词上下文聚合相似性 四.关键词上下文聚合性能测试 五.计算聚合相似性[CYPHER优化] 六. ...

  7. nginx报http400错误解决方法

    nginx报http400错误解决方法 参考文章: (1)nginx报http400错误解决方法 (2)https://www.cnblogs.com/hunter-zyg/p/4809708.htm ...

  8. nginx 报错 99: Cannot assign requested address

    为什么80%的码农都做不了架构师?>>>    nginx 报错 99: Cannot assign requested address net.ipv4.ip_local_port ...

  9. 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 ...

  10. [nginx报错]---unknown directive chunkin in /XXXXX/XXXXXX:XX的几种解决方式

    问题: nginx报错:unknown directive "chunkin" in /XXXXX/XXXXXX:XX 解决: 当出现unknown directive,一般有个反 ...

最新文章

  1. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...
  2. 查看mysql编译参数
  3. 【视频】vue组件之slot插槽
  4. 论文浅尝 - ACL2021 | 探讨跨句事件联合抽取问题
  5. 微信小程序和传统网页开发的区别
  6. autojs命令代码大全_各个主流品牌手机的命令代码大全,安卓工程模式的指令大全!...
  7. shell中设置文字输出的颜色及字体格式
  8. 还在用tm?你OUT啦!
  9. 索尼音乐客户端linux,索尼将为 Linux 带来设备内存不足的解决方案,
  10. 多个容器一起打包_Docker从入门到掉坑(三):容器太多,操作好麻烦
  11. linux convert命令把gif转jpg
  12. linux获取笔记本摄像头视频,Linux下利用Opencv打开笔记本摄像头问题
  13. API的防篡改和防重放机制
  14. 量子计算机关键技术有哪些,实现量子通信的关键技术有哪些?
  15. android 标题字体大小,如何修改android studio标题字体大小
  16. 【矩阵论笔记】零化多项式
  17. Python虚拟环境——virtualenv
  18. python架构师是做什么的_【图片】架构师速成-一个10多年架构师的总结_架构师吧_百度贴吧...
  19. FPGA期末项目 | 数字时钟
  20. lyapunov函数

热门文章

  1. 闲鱼网站实时监控iphone最新发布信息
  2. NYOJ234吃土豆
  3. MSDN我告诉你 一个没有人注意的工具站
  4. html让图片悬浮在网页,网页制作灰度图片悬浮效果利用HTML5和jQuery实现
  5. 上门洗车APP --- Android客户端开发 之 项目结构介绍
  6. 接口调用一会正常,一会失败
  7. 若已知1800年1月1日为星期3,则对于一个给定的年份和月份,输出这个月的最后一天是星期几。
  8. springboot发送短信验证码
  9. 38、生鲜电商平台-会员积分系统的设计与架构
  10. html css支付页面弹出密码框,html5仿支付宝密码框的实现代码