Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

Apache 資源使用限制指令完整詳解:LimitRequest* 與 RLimit* 系列防禦 DoS 攻擊

編輯:關於伺服器

Apache 提供兩大系列指令限制資源消耗,防範惡意請求導致的拒絕服務 (DoS) 攻擊:

  • LimitRequest* 系列:限制客戶端請求本身的大小與欄位數。
  • RLimit* 系列:限制Apache 子進程衍生的 CGI/SSI 進程資源用量。

一、LimitRequestBody

限制 HTTP 請求主體最大位元組數。

LimitRequestBody 102400  # 限制 100 KB,0 表無限制(預設)
# 適用範圍:server config, virtual host, directory, .htaccess

用例:檔案上傳功能限制上傳大小。

二、LimitRequestFields

限制 HTTP 請求標頭欄位數量。

LimitRequestFields 50  # 預設 100,0 表無限制
# 正常請求標頭欄位通常 < 20

三、LimitRequestFieldSize

限制單一 HTTP 請求標頭欄位大小(位元組)。

LimitRequestFieldSize 4094  # 預設 8190,建議保持預設

四、LimitRequestLine

限制 HTTP 請求行總長度(Method + URI + Protocol),間接限制 URL 長度。

LimitRequestLine 4094  # 預設 8190,建議保持預設

五、RLimitCPU

限制衍生進程佔用 CPU 秒數(軟/硬限制)。

RLimitCPU 30 60  # 軟限 30 秒,硬限 60 秒;max 表系統上限
# 需 root 權限提高硬限制

六、RLimitMEM

限制衍生進程佔用記憶體位元組數。

RLimitMEM 10485760 20971520  # 10 MB 軟限,20 MB 硬限

七、RLimitNPROC

限制衍生進程可建立的子進程數(每用戶進程數)。

RLimitNPROC 50 100  # 軟限 50,硬限 100
# 若 CGI 非以 Web 伺服器 uid 執行,將限制伺服器自身 fork 能力
# 錯誤日誌會記錄 "cannot fork"

八、ThreadStackSize

控制處理連線之執行緒堆疊大小(位元組)。

ThreadStackSize 65536  # NetWare 預設 65536,其他平台採 OS 預設
# 僅在第三方模組需較大堆疊或診斷確認為堆疊不足導致崩潰時調整
# 減小值可增加單進程最大執行緒數,但需充分測試

配置建議

  • 預設值通常足夠,僅在實際遭受攻擊或特殊業務需求時調整。
  • 修改後必須 重載 Apache (graceful) 生效。
  • 搭配 mod_security、mod_evasive 形成多層防護。
Copyright © Windows教程網 All Rights Reserved