在 CentOS 里“Apache2”通常指 Apache HTTP Server(httpd)。在 CentOS 上一般叫 httpd,而不是 apache2(那是 Debian/Ubuntu 的叫法)。
下面按常见场景给你几种限速方法,从简单到进阶。
mod_ratelimit(推荐,最简单)CentOS 默认通常已带 mod_ratelimit
httpd -M | grep ratelimit
如果有 ratelimit_module 就可以直接用。
<IfModule mod_ratelimit.c>
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 100
</IfModule>
单位:KB/s
<Directory "/var/www/html/download">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 200
</Directory>
<FilesMatch "\.(zip|mp4|iso)$">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 300
</FilesMatch>
systemctl restart httpd
✅ 优点:简单、稳定
❌ 缺点:只能限制输出速率,不能限制并发连接数
mod_qos(更精细控制)适合:
CentOS 默认仓库没有,需要 EPEL 或手动编译:
yum install mod_qos
<IfModule mod_qos.c>
QS_LocRequestLimitMatch .* 50
QS_LocRequestPerSecLimit 10
QS_EventLimitCount 100
</IfModule>
含义:
mod_bw(老方案,不推荐新系统)yum install mod_bw
BandWidthModule On
ForceBandWidthModule On
BandWidth all 102400
⚠️ 维护较少,CentOS 7+ 不推荐
如果你要真正的网络层限速(比如整个服务器出口):
tc qdisc add dev eth0 root tbf rate 10mbit latency 50ms burst 1540
或按 IP:
iptables -A OUTPUT -p tcp --dport 80 -m limit --limit 100/s -j ACCEPT
✅ 精确
❌ 配置复杂
| 需求 | 推荐方案 |
|---|---|
| 简单限速下载 | mod_ratelimit |
| 防刷 / 防爬 | mod_qos |
| 整机网络限速 | tc |
| 老系统兼容 | mod_bw |
如果你能告诉我:
我可以直接给你一份可用配置文件。