error.log 中出现大量以下日志:
2013/11/13 11:26:10 [info] 18382#0: *2799 client closed connection while waiting for request, client: 127.0.0.1, server: 0.0.0.0:80
请求量很小,一分钟也才3、4百个,远不到之前压力测试的阀值。上面的 client 很多 127.0.0.1 的,偶尔有个其他 IP 的。尝试过开关 keep-alive 均没能起到作用,可能的问题出在哪呢?
你看一下你 nginx 的错误日志级别开的什么,是不是开到 info 级别了。
我在开了 info 级别的日志时遇到过类似的信息,应该是客户端设置了HTTP请求超时,比如1秒后就超时,这时会给服务端发送一个关闭TCP连接的包,Nginx检测到客户端关闭连接后,就会记录一条这样的日志,并且此时 nginx access log 里面记录的是499这个 status code。
出现这个问题,通常可能是因为你接口响应时间太长了,超过了客户端设置的超时设置,建议在 nginx access log 里记录一下 $upstreamresponsetime $request_time 两个时间,看一下一般请求响应时间是多少。如果确实时间长,那就优化代码吧。