在官方 Nginx 文档中,自 v1.19.10 以来添加了一条新指令,名为keepalive_time 1h
:
Nginx keepalive_time 文档
限制通过一个保持活动连接处理请求的最大时间。达到此时间后,将在后续请求处理后关闭连接。
一旦浏览器发起保持连接,keepalive_timeout 75s
就会限制下一个静态 HTTP 请求可以发送的时间。75 秒后,保持连接将终止。现在我的问题是,之后会发生什么keepalive_time 1h
?75 秒后连接已关闭!这是否意味着 Nginx 可以执行已在保持连接中发送 1 小时的请求?
请尽可能简单地举例描述差异。
答案1
keepalive_timeout 是服务器保持空闲连接打开的时间。如果您发送请求,然后在此连接上不执行任何操作,则服务器将在您上次请求后 75 秒关闭连接。keepalive_time 是即使连接不空闲,也可以保持打开的最大持续时间。因此,如果您的连接处于空闲状态(未发送任何请求),服务器将在 75 秒后将其关闭(keepalive_timeout)。如果您的连接不空闲(您继续发送请求),则服务器将在 1 小时后将其关闭(keepalive_time)。