如何弄清楚Nginx状态码499

时间:2014-10-31 09:54:48

标签: nginx

我的设置:

  

卷曲 - > AWS ELB - > Nginx - >的NodeJS

当请求数量高时,我面临这个问题。

Nginx访问日志

xx.xx.xx.xx - - [30/Oct/2014:13:23:40 +0000] "POST /some/calls/object HTTP/1.1" 499 0 "-" "curl/7.27.0"
xx.xx.xx.xx - - [30/Oct/2014:13:23:40 +0000] "POST /some/calls/object HTTP/1.1" 499 0 "-" "curl/7.27.0"

Nginx错误日志

2014/10/30 13:23:40 [info] 11181#0: *17811 client xx.xx.xx.xx closed keepalive connection
2014/10/30 13:23:40 [info] 11181#0: *17631 epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while sending request to upstream, client: xx.xx.xx.xx, server: example.com, request: "POST /some/calls/objects HTTP/1.1", upstream: "http://xx.xx.xx.xx:xx/some/calls/object", host: "example.com"

NodeJS记录

2014-10-30T13:23:40.074Z : info :  req.method GET
2014-10-30T13:23:40.074Z : info :  req.url /some/calls/objects
2014-10-30T13:23:40.074Z : info :  error { message: 'Request Timed Out!' }
2014-10-30T13:23:40.075Z : info :  req.method GET
2014-10-30T13:23:40.075Z : info :  req.url /some/calls/objects
2014-10-30T13:23:40.075Z : info :  error { message: 'Request Timed Out!' }
2014-10-30T13:23:40.075Z : info :  error.stack undefined
2014-10-30T13:23:40.076Z : info :  error.stack undefined

问题

根据this link 499意味着客户端关闭了连接,但我的问题是,在这种情况下谁是客户端,ELB是关闭连接还是curl或nodejs?

我还观察到nodejs响应调用需要60多秒,如果nodejs遇到Timed out问题,那么它会一次又一次地发生。

0 个答案:

没有答案