本文共 731 字,大约阅读时间需要 2 分钟。
Nginx 的配置文件中 http 模块有关于 keepalive 的一些字段,这里的 keepalive 表示的是 HTTP1.1 的长连接。
长连接是 HTTP1.0 性能上的一个很大的问题,那就是每发起一个请求,都要新建一次 TCP 连接(三次握手),而且是串行请求,做了无谓的 TCP 连接建立和断开,增加了通信开销。
为了解决上述 TCP 连接问题,HTTP/1.1 提出了长连接的通信方式,也叫持久连接。这种方式的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。
持久连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。
在 Nginx 的配置文件中,keepalive_timeout 65 表示当进行 TCP 连接后,如果在 65s 内没有活动,则关闭长连接。keepalive_requests 1000 表示一个长连接中能够处理的最大请求数。keepalive_time 1h 表示通过一个长连接可以处理请求的最长时间。
在 upstream 模块中,keepalive 也起到关键作用。Nginx 作为反向代理,将请求转发到上游服务器时,需要在上游服务器之间建立长连接,这样可以减少客户端与服务器之间的连接次数,提升性能。
在 Nginx 配置中,upstream 模块中的 keepalive 参数用于限制上游服务器的长连接数量。keepalive_timeout、keepalive_requests、keepalive_time 的含义和 http 模块上的含义一致。
通过合理配置 keepalive 参数,可以有效优化 Nginx 的性能,提升 HTTP 请求的处理能力。
转载地址:http://glcfk.baihongyu.com/