首页 > 代码库 > nginx 499 状态码优化
nginx 499 状态码优化
在grafana界面中发现不少499的状态码,在网上了解到出现499的原因大体都是说服务端处理时间过长,客户端主动关闭了连接。
既然原因可能是服务端处理时间太长了,看一下upstream_response_time时间可以了解到后端程序处理了多久。
先了解一下什么是upstream_response_time和request_time分别是什么:
- request_time:服务端从接受客户端请求的第一个字节到服务端应用程序处理完发送完响应数据的时间,包括请求数据时间、程序响应时间、输出响应时间
- upstream_response_time:指nginx向后端如php,tomcat等建立连接开始到到处理完数据关闭连接为止的时间
上面说过,原因可能是服务端处理时间太长了, 那么应该upstream_resopnse_time和request_time时间很长才对。。看下图,打脸了,upstream_response_time没有记录,request_time也非常短,也就是说nginx根本没有将请求转发到php处理,而是直接返回了499状态码,所以没有upstream_response_time,并且request_time时间很短,甚至为零。
这么说我这里出现499不是服务端处理时间太长了,而是另有他因。
看来百度是不行的,google查找,原因可能是以下:
- 客户端请求速度过快,触发了nginx保护机制,直接返回499状态码
- 第二种情况就是客户端主动关闭了连接
- 证书错误
优化方法:
#size limits for 502 499 client_max_body_size 50m; client_body_buffer_size 256k; client_header_timeout 3m; client_body_timeout 3m; client_body_temp_path /dev/shm/client_body_temp; send_timeout 3m; proxy_ignore_client_abort on; # 告诉nginx不要主动关闭连接 proxy_connect_timeout 600; proxy_read_timeout 600; proxy_send_timeout 600; proxy_buffer_size 32k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 512k;
nginx 499 状态码优化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。