Apache HTTP Server 版本 2.4
描述 | 設定接收請求的逾時和最小資料傳輸速率 |
---|---|
狀態 | 延伸模組 |
模組識別碼 | reqtimeout_module |
原始檔 | mod_reqtimeout.c |
相容性 | 適用於 Apache HTTPD 2.2.15 和更新版本 |
此模組提供一種便利的方式來設定逾時和最小資料傳輸速率以接收請求。一旦發生逾時或資料傳輸速率太低,伺服器將關閉相對應的連線。
這會記錄在 LogLevel
info
中。
如有需要,可以調整 LogLevel
指令以明確記錄它
LogLevel reqtimeout:info
RequestReadTimeout handshake=5 header=10 body=30
LimitRequestBody
間接給予的限制外)RequestReadTimeout body=10,MinRate=1000
RequestReadTimeout header=10-30,MinRate=500
RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
描述 | 設定逾時值以完成 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 上使用)時,Socket 並未發送至伺服器程序,直到至少收到一個位元組(或整個要求針對 httpready
)為止。使用 RequestReadTimeout
設定的交握和標頭逾時只在伺服器程序收到 Socket 之後才會生效。
對於這三個逾時階段 (交握、標頭或本體) 的每一個,有下列三種方法可指定逾時時間
階段=逾時時間
完成整個階段 (交握、讀取所有要求標頭或本體) 所允許的秒數。0 值表示沒有限制。
交握=0 標頭=0 本體=0
這會完全停用 mod_reqtimeout
(請注意,交握=0
已是預設值,可予以省略)。
階段=逾時時間, 最小速率=資料速率
與上述內容相同,但每當收到資料時,逾時時間值會依照指定資料速率(以每秒位元組計算)進行增加。
階段=逾時時間-最大逾時時間, 最小速率=資料速率
與上述內容相同,但逾時時間不會超過指定的逾時時間範圍的第二個值。