apache官方不支持单ip并发连接限制,需通过第三方模块mod_limitipconn实现:下载编译安装后,启用extendedstatus并配置maxconnperip和noiplimit规则,可按目录或虚拟主机精细化控制,并注意反向代理与mpm兼容性问题。

Linux 中限制单个 IP 的并发连接数,Apache 官方不直接支持该功能,需借助第三方模块 mod_limitipconn 实现。它按来源 IP 统计并限制同一时刻的活跃连接数,适用于防刷、下载限流、缓解恶意请求等场景。
安装 mod_limitipconn 模块
该模块已适配 Apache 2.x,主流发行版均可编译安装:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 下载最新稳定版(如 0.24):
wget http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2 - 解压并进入目录:
tar -jxvf mod_limitipconn-0.24.tar.bz2 && cd mod_limitipconn-0.24 - 用 apxs 编译安装(路径需匹配你的 Apache):
/usr/bin/apxs -c -i -a mod_limitipconn.c
(CentOS/RHEL 常为/usr/sbin/apxs,Ubuntu/Debian 多为/usr/bin/apxs;可用which apxs确认) - 安装后会自动在
httpd.conf或apache2.conf中添加LoadModule limitipconn_module modules/mod_limitipconn.so
启用并配置 IP 并发限制
确保 Apache 启用了 ExtendedStatus On(这是 mod_limitipconn 运行前提),然后在配置中加入规则:
- 全局限制根目录:
<ifmodule mod_limitipconn.c><br> <location></location><br> MaxConnPerIP 3<br> NoIPLimit .jpg .png .gif<br> <br></ifmodule>
→ 每个 IP 最多 3 个并发连接,但图片类静态资源不限制 - 针对特定目录(如下载目录):
<location><br> MaxConnPerIP 2<br></location>
- 在虚拟主机内配置(更精准):
把上述<location></location>块放入<virtualhost></virtualhost>段中,可实现按站点隔离控制
验证与注意事项
配置完成后重启 Apache:systemctl restart apache2(Debian/Ubuntu)或 systemctl restart httpd(RHEL/CentOS)。
- 测试方法:用同一 IP(如本地机器)开多个浏览器标签或用
curl -s &并发请求受限路径,超过设定数将返回503 Service Unavailable - 注意:该模块统计的是“当前正在处理的请求”,不是 TCP 连接数,也不影响 Keep-Alive 空闲连接
- 若使用反向代理(如 Nginx),需开启
RemoteIPHeader X-Forwarded-For并加载mod_remoteip,否则限制的是代理 IP 而非真实客户端 - 不兼容 event MPM 的某些高并发场景(因连接复用机制不同),生产环境建议搭配
mod_bw做带宽补充控制










