温馨提示×

centos怎么限制apache带宽

小樊
37
2026-09-09 00:07:40
栏目: 智能运维

在 CentOS 上限制 Apache 的带宽,常见做法有几种,下面按常用程度给你说明。


一、使用 mod_bandwidth(推荐,简单直接)

1. 安装模块

CentOS 默认 Apache 一般不带 mod_bandwidth,需要安装:

yum install mod_bandwidth

(如果是 CentOS 8 / Stream,用 dnf


2. 配置模块

编辑 Apache 配置(如 /etc/httpd/conf.d/bandwidth.conf):

<IfModule mod_bandwidth.c>
    BandwidthModule On
    ForceBandWidthModule On

    <Directory "/var/www/html">
        Bandwidth all 102400   # 限制为 100KB/s(单位:字节/秒)
        MaxConnection all 50
    </Directory>
</IfModule>

说明:

  • 102400 = 100KB/s
  • 可针对虚拟主机、目录单独限制

3. 重启 Apache

systemctl restart httpd

二、使用 mod_ratelimit(Apache 2.4 自带)

如果你的 Apache 是 2.4+(CentOS 7+ 基本都是):

1. 确认模块已启用

httpd -M | grep ratelimit

如果没有,编辑:

vi /etc/httpd/conf.modules.d/00-base.conf

确保有:

LoadModule ratelimit_module modules/mod_ratelimit.so

2. 配置限速

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

或针对某个位置:

<Location /download>
    SetOutputFilter RATE_LIMIT
    SetEnv rate-limit 200
</Location>

3. 重启 Apache

systemctl restart httpd

三、使用 tc / iptables(系统级,不推荐用于 Apache)

适合整台服务器限速,而不是 Apache:

  • tc(流量控制)
  • wondershaper

示例(不针对 Apache 单独讲,复杂)


四、对比建议

方法 难度 精确度 推荐度
mod_ratelimit ⭐⭐⭐⭐
mod_bandwidth ⭐⭐⭐⭐
tc/iptables ⭐⭐

五、常见单位说明

  • mod_bandwidth: 字节/秒
  • mod_ratelimit: KB/秒

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

  • CentOS 版本
  • Apache 版本
  • 是想全局限速还是某个目录/虚拟主机

我可以直接给你一份可用的配置

0