Apache HTTPD 流量控制 mod_ratelimit
2025-01-09
mod_ratelimit 用於限制資料下載的速度
例如限制每個 request 每秒的速度是 512KB
適用於 httpd 2.4.24 之後的版本
設定方式
1.啟用 mod_ratelimit
通常是在這個檔中: /etc/httpd/conf.modules.d/00-optional.conf
LoadModule ratelimit_module modules/mod_ratelimit.so
2.apache 的設定資料
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName www.abc.com
#設定速率限制 範例
#SetEnv rate-limit 256 限制 256KB/s
#SetEnv rate-initial-burst 1024 (可不設) 剛連線時 允需超頻為 1024KB/s
# 經測試 前1秒 速度可超過 1024KB/s,接著開始遞減速度,大約 4~5秒就會降到 256KB/s
<IfModule mod_ratelimit.c>
<Location "/">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 256
SetEnv rate-initial-burst 1024
</Location>
#針對 /download 目錄來限速
<Location "/download">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 128
SetEnv rate-initial-burst 1024
</Location>
</IfModule>
</VirtualHost>
特別注意:
若需要針對某目錄限速時,
例如 "/download" 必須是 "實體目錄" 的名稱
不可寫上 rewrite 過的路徑,會無限速效果
例如:
.htaccess 中有一行:
RewriteRule ^download123/(.*) /download/$1 [QSA,L]
然後下面寫法 就無法限速
<Location "/download123">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 128
SetEnv rate-initial-burst 1024
</Location>
參考:
留言
相關文章