温馨提示×

centos中apache2怎样限速

小樊
43
2026-10-08 20:58:55
栏目: 智能运维

在 CentOS 里“Apache2”通常指 Apache HTTP Server(httpd)。在 CentOS 上一般叫 httpd,而不是 apache2(那是 Debian/Ubuntu 的叫法)。

下面按常见场景给你几种限速方法,从简单到进阶。


一、使用 Apache 模块 mod_ratelimit(推荐,最简单)

1. 确认模块已启用

CentOS 默认通常已带 mod_ratelimit

httpd -M | grep ratelimit

如果有 ratelimit_module 就可以直接用。

2. 配置限速(全局或目录)

示例:限制所有响应速度为 100 KB/s

<IfModule mod_ratelimit.c>
    SetOutputFilter RATE_LIMIT
    SetEnv rate-limit 100
</IfModule>

单位:KB/s

示例:只对某个目录限速

<Directory "/var/www/html/download">
    SetOutputFilter RATE_LIMIT
    SetEnv rate-limit 200
</Directory>

示例:只限制下载文件

<FilesMatch "\.(zip|mp4|iso)$">
    SetOutputFilter RATE_LIMIT
    SetEnv rate-limit 300
</FilesMatch>

3. 重启 Apache

systemctl restart httpd

✅ 优点:简单、稳定
❌ 缺点:只能限制输出速率,不能限制并发连接数


二、使用 mod_qos(更精细控制)

适合:

  • 限制每秒请求数
  • 限制并发连接
  • 防止单 IP 占满带宽

1. 安装

CentOS 默认仓库没有,需要 EPEL 或手动编译:

yum install mod_qos

2. 示例配置

<IfModule mod_qos.c>
    QS_LocRequestLimitMatch .* 50
    QS_LocRequestPerSecLimit 10
    QS_EventLimitCount 100
</IfModule>

含义:

  • 每 IP 每秒最多 10 个请求
  • 单 location 最大 50 并发
  • 总体事件上限 100

三、使用 mod_bw(老方案,不推荐新系统)

yum install mod_bw
BandWidthModule On
ForceBandWidthModule On
BandWidth all 102400

⚠️ 维护较少,CentOS 7+ 不推荐


四、结合系统层(iptables / tc)限速(高级)

如果你要真正的网络层限速(比如整个服务器出口):

tc qdisc add dev eth0 root tbf rate 10mbit latency 50ms burst 1540

或按 IP:

iptables -A OUTPUT -p tcp --dport 80 -m limit --limit 100/s -j ACCEPT

✅ 精确
❌ 配置复杂


五、推荐方案总结

需求 推荐方案
简单限速下载 mod_ratelimit
防刷 / 防爬 mod_qos
整机网络限速 tc
老系统兼容 mod_bw

如果你能告诉我:

  • CentOS 版本(6 / 7 / 8 / Stream)
  • Apache 版本
  • 想限制上传 / 下载 / 单 IP / 全站

我可以直接给你一份可用配置文件。

0 踩