温馨提示×

debian apache2如何限连接数

小樊
48
2026-10-18 04:23:51
栏目: 智能运维

在 Debian 下使用 Apache2 限制连接数,通常从 MPM 模块配置、mod_reqtimeout、mod_evasive 以及 防火墙/限流 几个层面来做。下面按“最常用 → 更严格”的方式说明。


一、先确认 Apache MPM 类型(非常重要)

Debian 默认可能是 prefork、worker 或 event。

apache2ctl -V | grep -i mpm

常见文件位置:

  • /etc/apache2/mods-available/mpm_prefork.conf
  • /etc/apache2/mods-available/mpm_event.conf
  • /etc/apache2/mods-available/mpm_worker.conf

二、通过 MPM 限制并发连接数(最基础)

1️⃣ prefork(最常见)

sudo nano /etc/apache2/mods-available/mpm_prefork.conf

示例:

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers       150   # 最大并发连接数
    MaxConnectionsPerChild   1000
</IfModule>

修改后:

sudo systemctl restart apache2

✅ MaxRequestWorkers = 同时能处理的请求数


2️⃣ event / worker

sudo nano /etc/apache2/mods-available/mpm_event.conf

示例:

<IfModule mpm_event_module>
    StartServers             2
    MinSpareThreads         25
    MaxSpareThreads         75
    ThreadLimit             64
    ThreadsPerChild         25
    MaxRequestWorkers       150
    MaxConnectionsPerChild   1000
</IfModule>

三、限制单个 IP 的连接数(防刷)

方法 1:mod_evasive(推荐)

sudo apt install libapache2-mod-evasive
sudo a2enmod evasive

配置:

sudo nano /etc/apache2/mods-available/evasive.conf

示例:

<IfModule mod_evasive20.c>
    DOSHashTableSize 3097
    DOSPageCount 10
    DOSSiteCount 50
    DOSPageInterval 1
    DOSSiteInterval 1
    DOSBlockingPeriod 60
</IfModule>

重启:

sudo systemctl restart apache2

✅ 可防单 IP 高频请求


四、限制请求速度(防慢速攻击)

mod_reqtimeout

sudo a2enmod reqtimeout

配置文件:

/etc/apache2/mods-available/reqtimeout.conf

示例:

RequestReadTimeout header=10-20,minrate=500
RequestReadTimeout body=10,minrate=500

五、用 iptables 限制单 IP 连接数(系统级)

iptables -A INPUT -p tcp --dport 80 -m connlimit \
--connlimit-above 20 -j DROP

或 HTTPS:

iptables -A INPUT -p tcp --dport 443 -m connlimit \
--connlimit-above 20 -j DROP

六、Nginx 反代时限制(如果你用了 Nginx)

如果你前面有 Nginx:

limit_conn_zone $binary_remote_addr zone=perip:10m;

server {
    limit_conn perip 10;
}

七、总结推荐方案

需求 推荐方式
限制总并发 MPM MaxRequestWorkers
防单 IP 刷 mod_evasive
防慢连接 mod_reqtimeout
系统级硬限 iptables connlimit

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

  • Debian 版本
  • Apache MPM 类型
  • 是 Web / API / 下载站
  • 是否有 Nginx 反代

我可以给你一份精确配置。

0 踩