Nginx 长连接

什么是长连接?

HTTP请求是基于TCP协议的,客户端向服务器发送一个 TCP 请求需要三次握手,服务端响应完毕后断开连接。 HTTP请求请求是应答式的,如果能知道每个请求头与响应体的长度,那么就可以在一个连接上面执行多个请求的,这就是所谓的长连接。 但前提条件是我们先得确定请求头与响应体的长度。


相关配置

Nginx 使用 keepalive_timeout 来指定客户端和 Nginx 之间的超时时间。指定每个 TCP 连接最多可以保持多长时间。Nginx 的默认值是 75 秒,有些浏览器最多只保持 60 秒,所以可以设定为 60 秒。若将它设置为 0,就禁止了 keepalive 连接。

# 配置段: http, server, location
keepalive_timeout 75s;

通常 keepalive_timeout 应该比 client_body_timeout 大。