美文网首页
nginx 499的一些收获

nginx 499的一些收获

作者: GeorgePeng | 来源:发表于2019-02-18 19:07 被阅读0次
最近,发现项目组各个系统,很多接口都出现了499的状态码。但是所占的比例不大。大概2%左右的

好奇499代表的是什么,通过查询,发现是** client has closed connection**

499并不是标准http_code,而是nginx自定义的一种code. 通过查询nginx源码,该code定义在ngx_http_request.h这个文件中

image

为什么会反馈这个code?

原因客户端主动断开,导致Nginx转发后端返回的数据,发现客户端已经断开。具体的判断逻辑,欢迎

查看Nginx源码。

测试方法:请求命令如下

curl --connect-timeout 0 -m 0.5 "你的接口地址";

image

ngxin 返回的结果:

image

产生的原因:

1.客户端的主动断开连接:

移动端ios 和 安卓主动断开,超过了其设置的超时时间。

2.浏览器自带的超时。

chrome的超时时间是5s 源码如下
image

测试验证:

当请求时间为6s+的时候,的确返回了499.
这里qq浏览器是最变态的0.9s以上都会抛499

firfox的超时时间也是超过4s以上

image

解决方案:

  1\. 建议检查接口是否有慢查询。处理接口慢查询

  2\. 提高接口的响应速率,减少包体不必要的传输内容。
  3\. web资源静态化,尽量减少接口的响应时间

  4\. nginx 代理设置
       设置 proxy_ignore_client_abort on; 表示代理服务端不要主要主动关闭客户端连接。
       但是该方案会存在安全问题。

以上是本人针对499的一些浅析。如有错误欢迎指正,拍砖。

感谢~

相关文章

  • nginx 499的一些收获

    好奇499代表的是什么,通过查询,发现是** client has closed connection** 499...

  • nginx 499 产生的原因

    什么是 nginx 的 499 499 是 nginx 扩展的 4xx 错误,目的只是用于记录,并没有实际的响应。...

  • nginx499错误

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

  • 搞清楚nginx的499状态码

    499 client has closed connection:nginx自定义的状态码。服务器处理请求过慢,客...

  • 调研 gunicorn && uwsgi 性能

    背景: 随着业务增长,API 接口 499,502 的数量也呈现增长的趋势。当下使用的 nginx + gunic...

  • 【nginx】nginx 499错误原因及解决方法

    nginx | 搞清楚 499 状态码https://www.jianshu.com/p/61ff29df05c6...

  • nginx 出现499返回码的问题

    查看Nginx的access日志: 这是一个上传apk到后台的接口,注意看日志中的响应码为 499 , 发送数据为...

  • nginx收获

    1.tar gz的解压使用tar命令 tar -zxvf nginx-1.9.2.tar.gz2.默认情况下,ng...

  • nginx状态码

    nginx有以下的状态码: 200:服务器成功返回网页403:服务器拒绝请求。404:请求的网页不存在 499:客...

  • nginx code

    nginx有以下的状态码: 200:服务器成功返回网页403:服务器拒绝请求。404:请求的网页不存在499:客户...

网友评论

      本文标题:nginx 499的一些收获

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