在 CentOS 上使用 Apache 服務器時,可以通過配置模塊來限制訪問速度。Apache 提供了幾個模塊來實現這一功能,其中最常用的是 mod_ratelimit
和 mod_evasive
。以下是如何使用這些模塊來限制訪問速度的步驟:
mod_ratelimit
安裝 mod_ratelimit
模塊:
sudo yum install mod_ratelimit
啟用 mod_ratelimit
模塊:
sudo systemctl restart httpd
配置 mod_ratelimit
:
編輯 Apache 配置文件(例如 /etc/httpd/conf/httpd.conf
或 /etc/httpd/conf.d/ratelimit.conf
),添加以下內容:
<IfModule mod_ratelimit.c>
# 限制每個 IP 地址每秒的請求數
SetEnv rate-limit 50
# 限制每個 IP 地址每分鐘的請求數
SetEnv rate-limit-burst 100
# 限制每個 IP 地址每小時的請求數
SetEnv rate-limit-hour 5000
# 限制每個 IP 地址每天的請求數
SetEnv rate-limit-day 10000
# 應用到特定的目錄或文件
<Directory "/var/www/html">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 50
SetEnv rate-limit-burst 100
</Directory>
</IfModule>
重啟 Apache 服務:
sudo systemctl restart httpd
mod_evasive
安裝 mod_evasive
模塊:
sudo yum install mod_evasive20
啟用 mod_evasive
模塊:
編輯 Apache 配置文件(例如 /etc/httpd/conf/httpd.conf
或 /etc/httpd/conf.d/evasive.conf
),添加以下內容:
LoadModule evasive20_module modules/mod_evasive20.so
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
重啟 Apache 服務:
sudo systemctl restart httpd
通過以上步驟,您可以在 CentOS 上使用 Apache 服務器限制訪問速度。選擇適合您需求的模塊并進行相應的配置即可。