温馨提示×

apache centos如何限速

小樊
44
2026-09-30 02:55:12
栏目: 智能运维

在 CentOS + Apache 环境下实现限速,常见有几种方式,下面按使用频率从简单到专业说明。


一、使用 Apache 自带模块(最简单)

1️⃣ mod_ratelimit(Apache 2.4+,推荐)

适用场景:限制每个连接的带宽(如 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

二、限制并发连接数(防刷)

2️⃣ mod_reqtimeout / mod_evasive

✅ mod_evasive(防 CC / 限速利器)

yum install mod_evasive -y

配置示例:

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

含义:

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

三、使用系统层限速(最灵活)

3️⃣ tc(Linux 流量控制,推荐高级用户)

适合整台服务器或网卡限速

示例:限制 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 反代 Apache(可选)

如果你前面有 Nginx:

limit_rate 100k;
limit_conn addr 10;

五、常见场景推荐方案

需求 推荐方案
限制下载速度 mod_ratelimit
防刷 / 防爬 mod_evasive
整服务器限速 tc
高并发控制 Nginx + Apache

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

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ Apache 版本
  • ✅ 想限速的对象(下载 / API / 整个站)

我可以给你精准配置示例。

0 踩