<-
Apache > HTTP 服务器 > 文档 > 版本 2.4 > 模块

Apache 模块 mod_reqtimeout

可用语言:  en  |  fr 

描述设置接收请求的超时时间和最小数据速率
状态扩展
模块标识符reqtimeout_module
源文件mod_reqtimeout.c
兼容性在 Apache HTTPD 2.2.15 及更高版本中可用

摘要

此模块提供了一种便捷的方式来设置接收请求的超时时间和最小数据速率。如果发生超时或数据速率过低,服务器将关闭相应的连接。

这将在 LogLevel info 级别记录。

如果需要,可以调整 LogLevel 指令以显式记录它。

LogLevel reqtimeout:info
Support Apache!

主题

指令

错误修复清单

另请参阅

top

示例

  1. 允许 5 秒完成 TLS 握手,10 秒接收请求头,30 秒接收请求体
    RequestReadTimeout handshake=5 header=10 body=30
  2. 允许至少 10 秒接收请求体。如果客户端发送数据,则每接收 1000 字节将超时时间增加 1 秒,超时时间没有上限(除了由 LimitRequestBody 间接给出的限制)。
    RequestReadTimeout body=10,MinRate=1000
  3. 允许至少 10 秒接收请求头。如果客户端发送数据,则每接收 500 字节将超时时间增加 1 秒。但请求头的超时时间不超过 30 秒。
    RequestReadTimeout header=10-30,MinRate=500
  4. 通常,服务器应该同时配置头和体超时时间。如果对 http 和 https 虚拟主机使用通用配置,则超时时间不应设置得太低。
    RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
top

RequestReadTimeout 指令

描述设置完成 TLS 握手、从客户端接收请求头和/或请求体的超时时间值。
语法RequestReadTimeout [handshake=timeout[-maxtimeout][,MinRate=rate] [header=timeout[-maxtimeout][,MinRate=rate] [body=timeout[-maxtimeout][,MinRate=rate]
默认值RequestReadTimeout handshake=0 header=20-40,MinRate=500 body=20,MinRate=500
上下文服务器配置,虚拟主机
状态扩展
模块mod_reqtimeout
兼容性在版本 2.2.15 及更高版本中可用;在版本 2.3.14 及更早版本中默认禁用。handshake 阶段从版本 2.4.39 开始可用。

此指令可以设置完成 TLS 握手、从客户端接收请求头和/或请求体的各种超时时间。如果客户端在配置的时间内未能完成这些阶段中的任何一个,则会发送 408 REQUEST TIME OUT 错误。

对于 SSL 虚拟主机,handshake 超时时间值是执行初始 SSL 握手所需的时间。如果用户的浏览器配置为查询证书吊销列表,并且 CRL 服务器不可达,则初始 SSL 握手可能需要相当长的时间,直到浏览器放弃等待 CRL。因此,handshake 超时时间应考虑 SSL 虚拟主机(如果需要)的这种可能的开销。体超时时间值包括 SSL 重新协商(如果需要)所需的时间。

当使用 AcceptFilter 时(通常在 Linux 和 FreeBSD 上是这种情况),在至少接收一个字节(或 httpready 的整个请求)之前,套接字不会发送到服务器进程。使用 RequestReadTimeout 配置的握手和头超时时间仅在服务器进程接收套接字后才有效。

对于三个超时阶段(握手、头或体)中的每一个,有三种方法可以指定超时时间。

可用语言:  en  |  fr 

top

评论

注意
这不是一个问答部分。此处放置的评论应指向有关改进文档或服务器的建议,如果它们被实施或被认为无效/偏离主题,可能会被我们的版主删除。有关如何管理 Apache HTTP Server 的问题应发送到我们的 IRC 频道 #httpd(在 Libera.chat 上)或发送到我们的 邮件列表