温馨提示×

centos下apache如何限速

小樊
48
2026-09-30 03:04:11
栏目: 智能运维

在 CentOS 下对 Apache 限速,常见做法有以下几种,按“是否依赖额外模块”从简单到专业说明:


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

1. 确认模块是否启用

CentOS 7/8 默认已带 mod_ratelimit

httpd -M | grep ratelimit

若无输出,手动启用:

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

确保有:

LoadModule ratelimit_module modules/mod_ratelimit.so

2. 配置限速示例

全局限速(所有请求)

<IfModule mod_ratelimit.c>
    RLimitRate 100000   # 单位:bytes/s(约 100KB/s)
</IfModule>

只对某个目录限速(如下载目录)

<Directory "/var/www/html/download">
    RLimitRate 50000
</Directory>

对虚拟主机限速

<VirtualHost *:80>
    ServerName example.com
    RLimitRate 200000
</VirtualHost>

✅ 重启 Apache:

systemctl restart httpd

二、使用 mod_bw(更细粒度,但需额外安装)

1. 安装 EPEL 和 mod_bw

yum install epel-release -y
yum install mod_bw -y

2. 启用模块

vi /etc/httpd/conf.modules.d/00-bw.conf
LoadModule bw_module modules/mod_bw.so

3. 示例配置

<IfModule mod_bw.c>
    BandWidthModule On
    ForceBandWidthModule On
    BandWidth all 100000      # 总带宽 100KB/s
    MinBandWidth all 5000     # 最小 5KB/s
    MaxConnection all 50
</IfModule>

重启:

systemctl restart httpd

三、在 CentOS 层用 tc / iptables 限速(不推荐给 Web)

适合整体服务器出口限速,不够精细。


四、推荐方案总结

场景 推荐方式
简单限速 mod_ratelimit
精细控制(IP/连接数) mod_bw
对整个服务器 tc / 防火墙

如果你能说明:

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

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

0 踩