在 CentOS 上给 Apache 做限速,常见有几种方式,从「Apache 自身」到「系统层」都可以。下面按常用程度给你说明。
mod_ratelimit(Apache 2.4+,CentOS 7/8 默认支持)httpd -M | grep ratelimit
如果有 ratelimit_module,说明已启用。
如未启用:
sudo vi /etc/httpd/conf.modules.d/00-base.conf
确保有:
LoadModule ratelimit_module modules/mod_ratelimit.so
重启:
sudo systemctl restart httpd
在虚拟主机或目录中:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Location />
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 500
</Location>
</VirtualHost>
说明:
rate-limit 500 → 500 KB/smod_bw(第三方模块,功能更强)适合需要:
yum install mod_bw
<IfModule mod_bw.c>
BandWidthModule On
ForceBandWidthModule On
BandWidth all 500000
MinBandWidth all 100000
</IfModule>
含义:
<Directory "/var/www/html/download">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 200
</Directory>
只对 /download 目录限速 200 KB/s
如果 Apache 限速不够,可用 tc(流量控制)
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
⚠️ 会影响整台服务器网络,不推荐 Web 服务器常用
| 场景 | 推荐方式 |
|---|---|
| 简单下载限速 | mod_ratelimit |
| 精确控制/IP | mod_bw |
| 整个服务器 | tc |
如果你能告诉我:
我可以直接给你一份可直接用的配置。