Nginx中限制新客户端连接建立时长的指令查询及client_header_timeout的超时范围确认
Nginx中限制新客户端连接建立时长的指令查询及client_header_timeout的超时范围确认
嘿,这个问题问得相当细致,我来帮你把这几个超时逻辑理清楚~
首先明确说:client_header_timeout并不包含连接建立和SSL握手的阶段,它的作用范围很明确——只负责从「TCP连接建立完成、SSL握手全部结束」之后开始,等待客户端发送完整HTTP请求头的最长时间。如果客户端在设定的时间内没把请求头发送完毕,Nginx就会返回408 Request Timeout。
那连接建立和SSL握手阶段的超时,是由另外两个独立的指令管控的:
- 控制TCP连接建立超时的是
connect_timeout:这是Nginx等待和客户端完成TCP三次握手的最长时间,默认值一般是60秒,如果超过这个时间连接还没建立起来,Nginx会直接断开连接。 - 控制SSL/TLS握手超时的是
ssl_handshake_timeout:当启用HTTPS时,这个指令负责限制Nginx等待客户端完成SSL握手的最长时间,默认通常也是60秒,握手超时的话同样会直接关闭连接。
简单梳理下整个流程的超时顺序:
TCP连接建立(受connect_timeout管控)→ SSL握手(受ssl_handshake_timeout管控)→ 等待HTTP请求头(受client_header_timeout管控)
这三个阶段是依次进行的,各自的超时规则独立生效,互不包含。
备注:内容来源于stack exchange,提问作者user2464424
相关产品推荐
相关产品推荐

