nginx keepalive的默认值

时间:2017-09-26 07:14:49

标签: nginx

来自nginx.org,keepalive config的默认值是 - ,但我不太明白这是什么意思。

Syntax: keepalive connections;
Default:    —
Context:    upstream
This directive appeared in version 1.1.4.

1 个答案:

答案 0 :(得分:4)

为了使Nginx保持TCP连接,上游部分和源服务器都应配置为不完成连接。上游部分keepalive默认值表示没有keepalive,因此连接将不会被重用,每次您可以看到每个请求到源服务器的TCP流数量增加,与keepalive发生的情况相反。您可以使用tcpdump进行检查。

10 Tips for 10x Application Performance博客文章描述得非常好:

  

客户端Keepalive - Keepalive连接减少了开销,尤其是   何时使用SSL / TLS。对于NGINX,您可以增加最大数量   keepalive_requests客户端可以通过给定的连接   默认值为100,您可以将keepalive_timeout增加到   允许keepalive连接保持打开更长时间,从而导致   更快的后续请求。

     

上游保持活动 - 上游连接 - 与...的连接   应用程序服务器,数据库服务器等 - 受益于   保持连接也是如此。对于上游连接,您可以   增加keepalive,空闲keepalive连接的数量   对每个工人流程保持开放。这允许增加   连接重用,减少了打开全新的需要   连接。有关更多信息,请参阅我们的博客文章HTTP   Keepalive连接和Web性能。

另见RFC-793 第3.5节:

  

TCP连接可能以两种方式终止:(1)正常的TCP关闭   使用FIN握手的序列,以及(2)其中一个或中的“中止”   发送更多RST段并立即建立连接状态   丢弃。如果远程站点关闭TCP连接,则为本地   申请必须被告知是否正常关闭或是   中止。

两个例子,请看下面的应用数据。

没有保持活力: without keepalive

使用keepalive: with keepalive