在 CentOS + Apache 环境下实现限速,常见有几种方式,下面按使用频率从简单到专业说明。
适用场景:限制每个连接的带宽(如 100KB/s)
httpd -M | grep ratelimit
若没有,编辑配置:
vim /etc/httpd/conf.modules.d/00-base.conf
确保有:
LoadModule ratelimit_module modules/mod_ratelimit.so
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Location />
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 100
</Location>
</VirtualHost>
说明:
rate-limit 100 → 限制为 100 KB/s重启 Apache:
systemctl restart httpd
yum install mod_evasive -y
配置示例:
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 10
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
</IfModule>
含义:
适合整台服务器或网卡限速
示例:限制 eth0 为 10Mbps
tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 400ms
查看:
tc qdisc show
删除:
tc qdisc del dev eth0 root
如果你前面有 Nginx:
limit_rate 100k;
limit_conn addr 10;
| 需求 | 推荐方案 |
|---|---|
| 限制下载速度 | mod_ratelimit |
| 防刷 / 防爬 | mod_evasive |
| 整服务器限速 | tc |
| 高并发控制 | Nginx + Apache |
如果你愿意,可以告诉我:
我可以给你精准配置示例。