Nginx 出现大量 client closed connection while waiting for request,请问可能是什么问题?

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 两个时间,看一下一般请求响应时间是多少。如果确实时间长,那就优化代码吧。

  • 关于docker下的nginx压力测试
  • linux下,grep中Perl风格正则表达式的一个疑惑
  • Git的 checkout 是个本地命令吗?
  • nginx根据域名进行负载均衡问题
  • 本地用window电脑做开发,是否需要跟Linux服务器上同步开发环境?
  • nginx的upstream问题
  • 如何在netfilter捕获的数据包中获取到源mac信息
  • 我将php和nginx一起封在了一个docker里,如何让nginx和php自启动?
  • nginx 启动一会就自动终止了
  • arm如何在内核空间直接读写某个物理地址(或者进程的虚拟地址)
  • nginx使用rewrite重定向,再在跳转到的服务器获取nginx服务器ip