温馨提示×

ubuntu apache2怎样限速

小樊
40
2026-09-23 10:38:26
栏目: 智能运维

在 Ubuntu 上通过 Apache2 实现限速,常见做法有以下几种,按使用频率和推荐程度说明:


一、使用 mod_ratelimit(Apache 自带,推荐)

1. 启用模块

sudo a2enmod ratelimit
sudo systemctl restart apache2

2. 配置限速

在虚拟主机或目录配置中加:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html

    <Location />
        SetOutputFilter RATE_LIMIT
        SetEnv rate-limit 100
    </Location>
</VirtualHost>

说明:

  • rate-limit 100 → 每秒 100 KB
  • 单位:KB/s
  • 只限制下载/响应速度

示例(限制为 500KB/s):

SetEnv rate-limit 500

二、限制单个 IP 的连接数(防刷)

使用 mod_reqtimeout + mod_status(辅助)

更常用的是 限制并发连接:

sudo a2enmod reqtimeout
RequestReadTimeout header=10-20,MinRate=500

三、使用 mod_evasive(防 CC / 限速 IP)

适合防止单 IP 疯狂请求:

sudo apt install libapache2-mod-evasive
sudo a2enmod evasive

配置示例:

<IfModule mod_evasive20.c>
    DOSHashTableSize 3097
    DOSPageCount 10
    DOSSiteCount 50
    DOSPageInterval 1
    DOSSiteInterval 1
    DOSBlockingPeriod 60
</IfModule>

含义:

  • 1 秒内访问 10 次页面 → 封 60 秒

四、使用 mod_bw(更精细限速,需第三方)

sudo apt install libapache2-mod-bw
sudo a2enmod bw

示例:

BandWidthModule On
ForceBandWidthModule On
BandWidth all 102400
  • 102400 = 100KB/s
  • 可针对 IP、User-Agent

五、系统层限速(不推荐但有效)

如 tc、wondershaper(影响所有服务)


推荐方案总结

需求 方案
下载限速 mod_ratelimit ✅
防刷 IP mod_evasive
精细控制 mod_bw
全服限速 系统 tc

如果你愿意,可以告诉我:

  • 是 上传还是下载限速
  • 限速对象(全部 / 某个目录 / 某个 IP)

我可以直接给你完整配置。

0 踩