温馨提示×

centos apache2如何限流量

小樊
42
2026-09-15 02:12:52
栏目: 智能运维

CentOS 上(注意:CentOS 默认是 Apache HTTP Server,包名通常是 httpd,而不是 apache2apache2 是 Debian/Ubuntu 的叫法),限制流量(带宽)常见有几种方式:


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

1. 确认模块是否启用

httpd -M | grep ratelimit

如果没有,需要安装(通常已内置):

yum install mod_ratelimit

2. 配置限流

编辑 Apache 配置:

vi /etc/httpd/conf/httpd.conf

或新建:

vi /etc/httpd/conf.d/ratelimit.conf

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

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

参数说明:

  • rate-limit 100 → 每秒 100 KB
  • 也可以针对目录或虚拟主机配置

3. 重启 Apache

systemctl restart httpd

✅ 优点:简单、原生支持
❌ 缺点:只能限制响应速度,不是精确流量计费


二、使用 mod_bandwidth(第三方模块,较老)

⚠️ CentOS 官方源通常不带,需要手动编译,不推荐新项目使用。


三、使用 iptables / tc 限制服务器总带宽(系统级)

适合限制整个服务器或某个 IP:

示例:限制某 IP 下载速度 1Mbps

tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms

或结合 iptables + hashlimit

iptables -A INPUT -p tcp --dport 80 -m hashlimit \
--hashlimit-above 100k/sec --hashlimit-mode srcip \
--hashlimit-name http -j DROP

✅ 优点:精确、系统级
❌ 缺点:配置复杂


四、使用 Nginx 反向代理限流(常见生产方案)

如果可以前端加 Nginx:

limit_rate 100k;

推荐方案总结

场景 推荐方式
Apache 单独限流 mod_ratelimit
整个服务器限流 tc / iptables
高并发生产 Nginx + Apache

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • Apache 版本
  • 想限制单 IP / 单连接 / 全局

我可以给你更精确的配置。

0