Skip to content

Nginx 499

现象

非必现,客户现场大概率复现,开发环境小概率复现

  1. 服务端 前端发送请求,服务端业务层未收到请求;
  2. 客户端 Chrome浏览器的network标签页中该请求仅能查看到Request Headers信息,priview和response均为空,timing中仅有stalled。

排查过程

查看Nginx的access log,过滤出错的请求,发现状态码均为499。

结论

499是Nginx独有的状态码,表示客户端主动关闭了连接,服务端又尝试向客户端写数据。可以使用proxy_ignore_client_abort on;来屏蔽,但没有实际解决问题。

解决方式

  1. 优化服务端业务,提升服务端吞吐量;
  2. 客户端请求超时时间加长;

参考连接

我是这么学习 nginx 499 的,从抓包到内核源码终于真相大白(附件nginx 400 | China 社区)Nginx 499 状态码(附件Nginx 499 状态码)