最新消息:

nginx HTTP 错误码499的含义

499 admin 4430浏览 0评论

Web服务器在用着 http://www.nginx.org/,在日志中偶尔会看到有499这个错误。开始没想明白到底是什么意思,在Twitter上提问也没有得到答案。日志如下:

61.135.249.220 – – [02/Oct/2009:10:28:21 +0000] “GET /subject/93390/ HTTP/1.1″ 499 0 “-” “Mozilla/5.0 (compatible; YoudaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; )”

61.135.249.216 – – [02/Oct/2009:10:30:08 +0000] “GET /subject/476083/ HTTP/1.1″ 499 0 “-” “Mozilla/5.0 (compatible; YoudaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; )”

rfc2616中,400~500间的错误码仅定义到了417,所以499应该是nginx自己定义的。后来想到读读nginx代码,疑问立解。

在nginx源码中grep一下499(现在看源码习惯用grep大法),得到如下结果:

1473054866-2662-nginx-special-response

找到src/http/ngx_http_special_response.c 这个文件,里面定义了不少http错误码以及相应的返回。注意到有下面这样的注释:

1473054866-3981-nginx-special-codes

可以看到,499对应的是 “client has closed connection”。这很有可能是因为服务器端处理的时间过长,客户端“不耐烦”了。要解决此问题,就需要在程序上面做些优化了。

除了499,nginx还定义了495/496/497/498 这几个Status Codes,相应的意义也在上面的注释中可以看到。开源的东西,可以随时翻看源码,这一点很棒。

转载请注明:爱开源 » nginx HTTP 错误码499的含义

您必须 登录 才能发表评论!