在 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 服务器限制访问速度。选择适合您需求的模块并进行相应的配置即可。