在nginx与upstream之间启用HTTP Keepalives有助于提供性能,减少连接的等待时间,并可以减少对端口的占用,避免大流量情况下,端口耗尽。
HTTP协议使用TCP连接传输的HTTP请求和接收HTTP响应的。HTTP Keepalive 允许对这些TCP连接的复用,从而避免了创建和销毁的每个请求连接的开销。文章源自运维生存时间-https://www.ttlsa.com/nginx/http-keepalives/
文章源自运维生存时间-https://www.ttlsa.com/nginx/http-keepalives/
HTTP使用这个过程被称为“存活”的保持TCP连接。如果客户端需要进行另一次HTTP事务,它可以利用这个闲置的“存活连接”,而不是创建一个新的TCP连接。文章源自运维生存时间-https://www.ttlsa.com/nginx/http-keepalives/
Nginx是一个完整的代理,管理从客户端(前端存活的连接)到服务端(上游存活连接)的连接。文章源自运维生存时间-https://www.ttlsa.com/nginx/http-keepalives/
文章源自运维生存时间-https://www.ttlsa.com/nginx/http-keepalives/
NGINX保持“存活连接高速缓存”,一套闲置的保活连接到上游服务器,当它需要转发一个请求到上游,它会从缓存中已经建立的连接,而不是创建一个新的TCP连接。这就减少了NGINX和上游服务器之间等待时间,并减少端口使用。所以NGINX能够吸收和负载平衡大量的流量。在突发大流量下,高速缓存可能被耗尽,在这种情况下NGINX将与上游服务器建立新的HTTP连接。文章源自运维生存时间-https://www.ttlsa.com/nginx/http-keepalives/
这种技术有时被称为“复用”,“连接池”,“连接复用”,或在传统的负载均衡术语中称为“OneConnect”。文章源自运维生存时间-https://www.ttlsa.com/nginx/http-keepalives/
keepalive连接缓存配置如下:
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; }文章源自运维生存时间-https://www.ttlsa.com/nginx/http-keepalives/文章源自运维生存时间-https://www.ttlsa.com/nginx/http-keepalives/
评论