在 CentOS 下对 Apache 限速,常见做法有以下几种,按“是否依赖额外模块”从简单到专业说明:
mod_ratelimit(推荐,最简单)CentOS 7/8 默认已带 mod_ratelimit
httpd -M | grep ratelimit
若无输出,手动启用:
vi /etc/httpd/conf.modules.d/00-base.conf
确保有:
LoadModule ratelimit_module modules/mod_ratelimit.so
<IfModule mod_ratelimit.c>
RLimitRate 100000 # 单位:bytes/s(约 100KB/s)
</IfModule>
<Directory "/var/www/html/download">
RLimitRate 50000
</Directory>
<VirtualHost *:80>
ServerName example.com
RLimitRate 200000
</VirtualHost>
✅ 重启 Apache:
systemctl restart httpd
mod_bw(更细粒度,但需额外安装)yum install epel-release -y
yum install mod_bw -y
vi /etc/httpd/conf.modules.d/00-bw.conf
LoadModule bw_module modules/mod_bw.so
<IfModule mod_bw.c>
BandWidthModule On
ForceBandWidthModule On
BandWidth all 100000 # 总带宽 100KB/s
MinBandWidth all 5000 # 最小 5KB/s
MaxConnection all 50
</IfModule>
重启:
systemctl restart httpd
tc / iptables 限速(不推荐给 Web)适合整体服务器出口限速,不够精细。
| 场景 | 推荐方式 |
|---|---|
| 简单限速 | mod_ratelimit |
| 精细控制(IP/连接数) | mod_bw |
| 对整个服务器 | tc / 防火墙 |
如果你能说明:
我可以直接给你一份可用配置文件。