一.对客户端使用keepalive提升连接效率(对下游服务使用keepalive长连接)
HTTP协议的keepalive:对客户端keepalive行为控制指令
功能:多个HTTP请求通过复用TCP连接,实现以下功能。
(1)减少握手次数
(2)通过减少并发连接数减少了服务器资源的消耗
(3)降低TCP拥塞控制的影响
Connection头部:取值为close或者keepalive,前者表示请求处理完即关闭连接,后者表示复用连接处理下一条请求
Keep-Alive头部:其值为timeout=n,后面的数字n单位是秒,告诉客户端至少保留n秒
1.keepalive_disable 指令 (对某些浏览器不再使用keepalive)
语法:keepalive_disable none | browser ...;
默认:keepalive_disable msie6;
放置位置:http,server,location
2.keepalive_requests 指令 (一个TCP连接上最多执行多少个HTTP请求)
语法:keepalive_requests number;
默认:keepalive_requests 100;
放置位置:http,server,location
3.keepalive_timeout 指令 (timeout:用户一个HTTP请求连接完成以后,最多经过timeout时间,如果还是没有新的请求,就会关闭连接。 header_timeout:这个连接应至少保留多少秒)
语法:keepalive_timeout timeout[header_timeout];
默认:keepalive_timeout 75s;
放置位置:http,server,location
二.对服务端使用keepalive提升效率(对上游服务使用keepalive长连接)【效果明显】
功能:通过复用连接,降低nginx与上游服务器建立,关闭连接的消耗,提升吞吐量的同时 ,降低时延
模块:ngx_http_upstream_keepalive_module,默认编译进nginx,通过--without-http_upstream_keepalive_module移除
1.keepalive_requests 指令 (一个TCP连接上最多执行多少个HTTP请求)
语法:keepalive_requests number;
默认:keepalive_requests 100;
放置位置:upstream
2.keepalive_timeout 指令 (timeout:用户一个HTTP请求连接完成以后,最多经过timeout时间,如果还是没有新的请求,就会关闭连接)
语法:keepalive_timeout timeout;
默认:keepalive_timeout 60s;
放置位置:upstream
3.resolver指令
语法:resolver address ...[valid= time][ipv6= on | off]
默认:空
放置位置:http,server,location
4.resolver_timeout time指令
语法:resolver_timeout time;
默认:resolver_timeout 30s;
放置位置:http,server,location
本文详细介绍如何通过keepalive功能优化Nginx的客户端和服务端连接效率,包括keepalive_disable、keepalive_requests、keepalive_timeout等指令的使用,以及对上游服务使用keepalive长连接的配置方法。


被折叠的 条评论
为什么被折叠?



