什么是长连接?
HTTP请求是基于TCP协议的,客户端向服务器发送一个 TCP 请求需要三次握手,服务端响应完毕后断开连接。 HTTP请求请求是应答式的,如果能知道每个请求头与响应体的长度,那么就可以在一个连接上面执行多个请求的,这就是所谓的长连接。 但前提条件是我们先得确定请求头与响应体的长度。
相关配置
Nginx 使用 keepalive_timeout
来指定客户端和 Nginx 之间的超时时间。指定每个 TCP 连接最多可以保持多长时间。Nginx 的默认值是 75 秒,有些浏览器最多只保持 60 秒,所以可以设定为 60 秒。若将它设置为 0,就禁止了 keepalive 连接。
# 配置段: http, server, location |
通常 keepalive_timeout 应该比 client_body_timeout 大。