温馨提示×

Ubuntu Apache2怎样限流量

小樊
48
2026-10-14 01:18:36
栏目: 智能运维

在 Ubuntu 上使用 Apache2 进行限流量(带宽限速 / 并发流量控制),常见做法有下面几种,按“实用程度”从易到难说明。


一、使用 mod_ratelimit(推荐,Apache 原生)

适合:限制每个连接的下载速度

1. 启用模块

sudo a2enmod ratelimit
sudo systemctl restart apache2

2. 配置限速

编辑站点配置(如 /etc/apache2/sites-available/000-default.conf):

<VirtualHost *:80>
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        # 限速 100 KB/s
        SetOutputFilter RATE_LIMIT
        SetEnv rate-limit 100
    </Directory>
</VirtualHost>

可选参数:

SetEnv rate-limit 200        # KB/s
SetEnv rate-limit-burst 1024 # 突发流量(KB)

✅ 优点:简单、官方支持
❌ 缺点:不能限制总流量,只能限速率


二、使用 mod_bandwidth(第三方)

适合:精细控制(按 IP / 目录 / 总带宽)

1. 安装

Ubuntu 默认仓库没有,需要手动编译或使用 PPA(不推荐生产环境)。

一般步骤:

apt install apache2-dev
wget http://apache.ivn.cl/mod_bandwidth.c
apxs -c mod_bandwidth.c

⚠️ 较老,兼容性一般

2. 示例配置

BandWidthModule On
ForceBandWidthModule On
BandWidth all 50000        # 50 KB/s
MaxConnection all 10

三、使用 mod_qos(功能强)

适合:限并发、限速率、防滥用

sudo apt install libapache2-mod-qos
sudo a2enmod qos

示例:

QS_LimitRequestBody 102400
QS_EventLimitCount 100 1
QS_LimitReadBody 100

四、系统层限速(不强依赖 Apache)

1. tc(Linux 流量控制)

适合整台服务器限速。

2. nginx 反代 + limit_rate

如果你能加一层 Nginx:

limit_rate 100k;

五、常见需求对照表

需求 推荐方案
限制下载速度 mod_ratelimit
限制单个 IP 带宽 mod_bandwidth
限制并发连接 mod_qos
限制总流量 系统层 / Nginx
简单稳定 ✅ mod_ratelimit

六、验证是否生效

wget http://your-server/file

观察速度是否被限制。


如果你能说明:

  • 是 下载限速 还是 防止刷流量
  • 是否 按 IP
  • Apache 版本(Ubuntu 20.04 / 22.04 / 24.04)

我可以直接给你一套可复制的配置。

0 踩