在nginx与upstream之间启用HTTP Keepalives有助于提供性能,减少连接的等待时间,并可以减少对端口的占用,避免大流量情况下,端口耗尽。
HTTP协议使用TCP连接传输的HTTP请求和接收HTTP响应的。HTTP Keepalive 允许对这些TCP连接的复用,从而避免了创建和销毁的每个请求连接的开销。
HTTP使用这个过程被称为“存活”的保持TCP连接。如果客户端需要进行另一次HTTP事务,它可以利用这个闲置的“存活连接”,而不是创建一个新的TCP连接。
Nginx是一个完整的代理,管理从客户端(前端存活的连接)到服务端(上游存活连接)的连接。
NGINX保持“存活连接高速缓存”,一套闲置的保活连接到上游服务器,当它需要转发一个请求到上游,它会从缓存中已经建立的连接,而不是创建一个新的TCP连接。这就减少了NGINX和上游服务器之间等待时间,并减少端口使用。所以NGINX能够吸收和负载平衡大量的流量。在突发大流量下,高速缓存可能被耗尽,在这种情况下NGINX将与上游服务器建立新的HTTP连接。
这种技术有时被称为“复用”,“连接池”,“连接复用”,或在传统的负载均衡术语中称为“OneConnect”。
keepalive连接缓存配置如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
server
{
listen
80
;
location
/
{
proxy_pass
http
:
//backend;
proxy_http
_version
1.1
;
proxy_set_header
Connection
""
}
}
upstream
backend
{
server
webserver1
;
server
webserver2
;
# maintain a maximum of 20 idle connections to each upstream server
keepalive
20
;
}
|
收 藏
转载请注明:成长的对话 » HTTP Keepalives