在 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
),添加以下内容:# 限制每个 IP 地址每秒的请求数 SetEnv rate-limit 50 # 限制每个 IP 地址每分钟的请求数 SetEnv rate-limit-burst 100 # 限制每个 IP 地址每小时的请求数 SetEnv rate-limit-hour 5000 # 限制每个 IP 地址每天的请求数 SetEnv rate-limit-day 10000 # 应用到特定的目录或文件 SetOutputFilter RATE_LIMIT SetEnv rate-limit 50 SetEnv rate-limit-burst 100 -
重启 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
DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 -
重启 Apache 服务:
sudo systemctl restart httpd
注意事项
- 测试配置:在生产环境中应用这些配置之前,请确保在测试环境中进行充分测试,以避免意外中断服务。
- 调整参数:根据实际需求调整限制参数,以平衡安全性和用户体验。
- 日志记录:配置日志记录以便监控和调试访问限制的效果。
通过以上步骤,您可以在 CentOS 上使用 Apache 服务器限制访问速度。选择适合您需求的模块并进行相应的配置即可。