我们在多个 HTTPS 应用服务器前面设置了一个 TCP 模式的 HAProxy。到目前为止一切运行良好,但想问一下这些设置。在我的默认部分中,我有以下设置,我已将其注释掉(关闭):
# timeout http-request 10s
# timeout queue 1m
# timeout connect 10s
# timeout client 1m
# timeout server 1m
# timeout http-keep-alive 10s
...
通过关闭这些,它会将它们设置为无穷大吗?它只是选择一些默认值吗?我无法找出它到底做了什么。
我现在想关闭这些限制,所以希望注释掉它们能起作用。不过,我还是希望得到确认,所以任何帮助我都会非常感激。
答案1
timeout http-request <timeout>
这是设置等待完整 HTTP 请求的最大允许时间
如果未设置此参数,客户端超时仍适用于传入请求的每个块之间。它应在前端设置才能生效,除非前端处于 TCP 模式,在这种情况下将使用 HTTP 后端的超时。
欲了解更多详情,请查看HAProxy 配置手册 超时 http 请求部分
timeout queue <timeout>
这是设置在队列中等待连接槽空闲的最大时间
如果未指定,则使用与后端的连接超时(“timeout connect”)相同的值,以便向后兼容没有“timeoutqueue”参数的旧版本。有关更多详细信息,请查看HAProxy 配置手册 超时队列部分。
timeout connect <timeout> or timeout contimeout <timeout> (deprecated)
这是设置等待服务器连接尝试成功的最大时间
未指定的超时会导致无限超时,这是不推荐的。这种用法是可以接受的,并且有效,但在启动期间会报告警告,因为如果系统的超时也未配置,它可能会导致系统中积累失败的会话。有关更多详细信息,请查看HAProxy 配置手册 超时连接部分。
为了
timeout client <timeout> or timeout clitimeout <timeout> (deprecated)
设置客户端的最长不活动时间。timeout server <timeout> or timeout srvtimeout <timeout>
(已弃用)设置服务器端的最长不活动时间。
未指定的超时会导致无限超时,这是不推荐的。这种用法是可以接受的,并且有效,但在启动期间会报告警告,因为如果未配置系统的超时,它可能会导致系统中累积过期的会话。
timeout http-keep-alive <timeout>
这是设置等待新 HTTP 请求出现的最大允许时间
如果未设置此参数,则适用“http-request”超时,如果两者都未设置,则“timeout client”仍适用于较低级别。它应该在前端设置才能生效,除非前端处于 TCP 模式,在这种情况下 HTTP后端超时将会被使用。