499这个状态码并不是http协议中定义的status code,而是nginx自己定义的一个状态码。当客户端主动断开连接...
499这个状态码并不是http协议中定义的status code,而是nginx自己定义的一个状态码。当客户端主动断开连接的时候,nginx就会返回499的状态码。一般情况下和请求的超时设置有关系,比如用户用浏览器访问某个网页的时候,如果在nginx还没有处理完请求的时候,用户就关闭了网页活着浏览器,则这个时候,nginx就会...
curl "192.168.0.100/send.php" -m 10 即10秒超时,若一个用户发送push需要1s中,那么send.php发送10个用户后,A这边curl的客户端就会断开连接,这是在B的机器上看nginx日志就会出现499的状态码。 但是按上面的条件也不只是能发送10个用户,其实send.php这个脚本不一定已经终止了,只是nginx已经不管这个phpfpm进程了。
即10秒超时,若一个用户发送push需要1s中,那么send.php发送10个用户后,A这边 curl的客户端 就会断开连接,这是在B的机器上看nginx日志就会出现 499 的状态码。但是按上面的条件也不只是能发送10个用户,其实send.php这个脚本不一定已经终止了,只是nginx已经不管这个phpfpm进程了。send.php 最终运行时...
背景:发现gitlab经nginx代理后,有一天访问突然发现出现409错误,[15/Sep/2016:12:40:13 +0800] "GET /dashboard/projects HTTP/1.1" 499 0 "-" "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36",502 Whoops, GitLab is taking too much time...
可以看到,499对应的是 “client has closed connection”。这很有可能是因为服务器端处理的时间过长,客户端“不耐烦”了。要解决此问题,就需要在程序上面做些优化了。 除了499,nginx还定义了495/496/497/498 这几个Status Codes,相应的意义也在上面的注释中可以看到。开源的东西,可以随时翻看源码,这一点很棒。
打开Nginx的access.log发现在最后一次的提交是出现了HTTP1.1 499 0 -这样的错误,在百度搜索nginx 499错误,结果都是说客户端主动断开了连接。但经过我的测试这显然不是客户端的问题,因为使用端口+IP直接访问后端服务器不存在此问题,后来测试nginx发现如果两次提交post过快就会出现499的情况,看来是nginx...
ngx_null_string, /* 499, client has closed connection */ 从注释说明来看,499的产生是由于请求过程中,源站先关闭,然后产生了499,于是自己写代码仰正一番。 直接上python脚本: 第一次,请求一个本地文件,但是nginx 响应太快,没等完全关闭,响应已经回来。nginx状态码是200。
客户端错误(400–499) 服务器错误 (500–599) 一些常见的状态码为: 200- 服务器成功返回网页404- 请求的网页不存在503- 服务不可用 所有状态解释: 一、信息响应 1、100 Continue:这个临时响应表明,迄今为止的所有内容都是可行的,客户端应该继续请求,如果已经完成,则忽略它。