在 Ubuntu 上使用 Apache2 进行限速,常见做法有几种,按「简单 → 灵活」排序如下:
mod_ratelimit(推荐,最简单)sudo a2enmod ratelimit
sudo systemctl restart apache2
编辑站点配置(如 /etc/apache2/sites-available/000-default.conf):
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Location />
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 100
</Location>
</VirtualHost>
说明:
rate-limit 100 表示 每秒最多 100KB也可以按目录或文件类型限速:
<Directory "/var/www/html/download">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 50
</Directory>
<FilesMatch "\.(mp4|zip)$">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 200
</FilesMatch>
mod_bw(更老但可控性强)Ubuntu 默认仓库有:
sudo apt install libapache2-mod-bw
sudo a2enmod bw
sudo systemctl restart apache2
<VirtualHost *:80>
BandwidthModule On
ForceBandwidthModule On
Bandwidth all 102400
MinBandwidth all 102400
</VirtualHost>
说明:
102400 = 100KB/s如果你是想 全局限速(包括 FTP、SSH 等):
tc (traffic control)wonder shapernginx + limit_rate但 Apache 本身不推荐这么做
✅ mod_ratelimit 只对 响应输出有效(下载限速)
❌ 不能限制上传
❌ 不支持按 IP 精确限速(需 mod_bw 或 nginx)
| 需求 | 推荐 |
|---|---|
| 简单下载限速 | mod_ratelimit |
| 精细控制 | mod_bw |
| 高并发 + 强限速 | 换 Nginx |
如果你能说一下:
我可以给你一份 可直接用的配置。