preread_timeout
设置流连接预读阶段的超时时间。 — NGINX Stream Core
preread_timeout
streamstream server
语法preread_timeout time;
默认值none
上下文stream, stream server
模块NGINX Stream Core
参数1
说明
`preread_timeout` 指令位于 NGINX Stream Core 模块,指定服务器在预读状态下等待的最长时间,超过该时间将关闭空闲连接。在该状态期间,NGINX 正在等待客户端发送完整请求,例如在 TCP 流处理中的数据包。如果客户端在指定的超时时间内未发送数据,NGINX 将终止连接以节省资源并防止潜在的拒绝服务攻击。简而言之,它定义了 NGINX 在流事务的初始阶段会耐心等待多长时间,然后才采取关闭连接的措施。 此指令在持续的空闲连接可能导致资源耗尽并影响整体服务器性能的环境中特别有用。该指令的参数是一个时间值,可用秒、分钟或小时表示,与 NGINX 配置中的其他超时指令类似。管理员应根据网络中客户端的预期行为谨慎平衡该超时时间,因为将其设置得过低可能会无意中中断那些在数据传输中可能出现延迟的有效连接。
配置示例
stream {
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
server {
listen 12345;
preread_timeout 30s;
proxy_pass backend;
}
}⚠
将 `preread_timeout` 设置得过低可能会由于数据传输延迟而导致合法连接被断开。
⚠
确保已配置的超时时间为客户端建立连接留出足够时间,尤其是在高延迟网络中。