nginx:使用keepalive提升连接效率

本文详细介绍如何通过keepalive功能优化Nginx的客户端和服务端连接效率,包括keepalive_disable、keepalive_requests、keepalive_timeout等指令的使用,以及对上游服务使用keepalive长连接的配置方法。

一.对客户端使用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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值