温馨提示×

centos apache如何限速

小樊
48
2026-09-18 02:51:17
栏目: 智能运维

在 CentOS 上通过 Apache 实现限速,常见有几种方式,下面按最常用 → 进阶给你说明。


一、使用 mod_ratelimit(推荐,Apache 自带)

1. 确认模块已启用

CentOS 默认 Apache(httpd)一般已带 mod_ratelimit

httpd -M | grep ratelimit

如果没有,启用:

sudo yum install mod_ratelimit
sudo systemctl restart httpd

2. 配置限速(示例)

全局限速(所有请求)

编辑 Apache 配置:

sudo vi /etc/httpd/conf/httpd.conf

添加:

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

单位:KB/s
上面表示限速 500KB/s


针对目录限速(常用)

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

→ 仅 /download 目录限速 200KB/s


针对虚拟主机

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example

    SetOutputFilter RATE_LIMIT
    SetEnv rate-limit 300
</VirtualHost>

3. 重启 Apache

sudo systemctl restart httpd

二、使用 mod_bw(功能更强,但需额外装)

1. 安装

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

sudo yum install epel-release
sudo yum install mod_bw

2. 示例配置

<IfModule mod_bw.c>
    BandWidthModule On
    ForceBandWidthModule On
    BandWidth all 102400
</IfModule>

102400 = 100KB/s

可按 IP、文件类型限速,适合下载站。


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

适合整个服务器出口限速,不区分 URL:

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

四、推荐方案总结

场景 推荐方式
简单限速 mod_ratelimit
下载站 / 复杂规则 mod_bw
整个服务器 tc / 防火墙

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

  • Apache 版本(httpd -v
  • 想限速的内容(全站 / 某个目录 / 下载)
  • 限速目标(KB/s 或 Mbps)

我可以帮你写精确配置

0