·【场景描述】
HTTP1.1之后,HTTP协议支持持久连接,也就是长连接,优点在于在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。
如果我们使用了nginx去作为反向代理或者负载均衡,从客户端过来的长连接请求就会被转换成短连接发送给服务器端。
为了支持长连接,我们需要在nginx服务器上做一些配置。
·【要求】
使用nginx时,想要做到长连接,我们必须做到以下两点:
- 从client到nginx是长连接
- 从nginx到server是长连接
对于客户端而言,nginx其实扮演着server的角色,反之,之于server,nginx就是一个client。
·【保持和 Client 的长连接】
我们要想做到Client与Nginx之间保持长连接,需要:
- Client发送过来的请求携带"keep-alive"header。
- Nginx设置支持keep-alive
【HTTP配置】
默认情况下,nginx已经开启了对client连接的 keepalive 支持。对于特殊场景,可以调整相关参数。