如何解决NGINX超时– Http 499个客户端关闭请求

Nginx中的HTTP 499意味着客户端在服务器响应请求之前关闭了连接, 这种情况通常是由客户端超时或者主动关闭连接引起的。499是Nginx特定的错误代码。

实际上,真正的问题是nginx和uwsgi之间的通信,而不是浏览器和nginx之间的通信。如果将网站加载到浏览器中并且等待了足够长的时间,我将获得“ 504-错误的网关”。但是花了这么长时间,我一直在尝试一些东西,然后在浏览器中刷新。因此,我从来没有等待足够长的时间才能看到504错误。在浏览器中刷新时,即关闭前一个请求时,Nginx在日志中将其写为499。

当HTTP返回499时,nginx创建的连接中止。但是通常这是由于您的后端服务器太慢而导致的,并且另一个代理首先超时或用户软件中止连接。因此,请检查uWSGI是否正在快速响应,或者uWSGI /数据库服务器上是否有负载。

nginx log

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"

解决方法

  1. 定位响应过慢的节点,应用程序->缓存->数据库-服务器,具体到问题的原因进行优化。
  2. 对这种499问题进行监控,当发现出现大量的499问题发报警通知。
数据结构之哈希表hashtable
PHP常量类型