关于nginx报499的问题排查分析
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慢,调用其它接口慢)等,应该从后端去优化下)。
- 证书错误。