来自nginx.org,keepalive config的默认值是 - ,但我不太明白这是什么意思。
Syntax: keepalive connections;
Default: —
Context: upstream
This directive appeared in version 1.1.4.
答案 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连接,则为本地 申请必须被告知是否正常关闭或是 中止。
两个例子,请看下面的应用数据。