Apache防非法访问致资源枯竭的核心是提前拦截、主动限流、权限收紧:用mod_evasive限频(如DOSPageCount 2)、MPM调优并发(如MaxRequestWorkers 128)、默认拒绝+显式授权、禁用非必要HTTP方法及敏感文件访问。

Apache 防止非法访问引发资源枯竭,核心是“提前拦截 + 主动限流 + 权限收紧”,不是等请求进来再处理,而是从连接入口、请求频率、执行权限三个层面设防。
限制单 IP 并发连接与请求速率
高频或大量并发的非法请求(如扫描器、爬虫、攻击脚本)会迅速占满工作线程和连接队列,导致正常用户无法响应。推荐使用 mod_evasive 模块做轻量级防护:
- 启用后配置每秒最多允许 2 次同一页面访问(
DOSPageCount 2),全站最多 50 次(DOSSiteCount 50) - 超限 IP 自动封禁 10 秒(
DOSBlockingPeriod 10),时间可按业务容忍度调整 - 配合 mod_limitreq 在更底层限速,例如限制每个 IP 每秒最多 10 个请求:
limit_req zone=one burst=20 nodelay
控制全局并发与连接生命周期
资源枯竭常源于连接堆积而非 CPU 耗尽。需合理设置 MPM(多路处理模块)参数,避免线程/进程无节制创建:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 对 mpm_prefork:设
MaxRequestWorkers(旧称 MaxClients)为内存可支撑的合理值(如 128–256),避免 fork 过多进程 - 开启持久连接但严格限制:
KeepAlive On,MaxKeepAliveRequests 100,KeepAliveTimeout 5 - 调低
Timeout(建议 60–300 秒),防止慢速攻击(Slowloris)长期占用连接
关闭默认宽松策略,强制显式授权
很多资源耗尽源于未加约束的目录或文件被反复探测、遍历或执行。必须打破“不禁止即允许”的惯性:
- 所有虚拟主机或主配置中,添加默认拒绝规则:
<RequireAll><Require all denied></RequireAll>,再逐个放行必要路径 - 敏感目录(如
/admin、/backup、/logs)单独配置:Require ip 192.168.1.0/24或Require valid-user - 禁用危险功能:
Options -Indexes -ExecCGI -Includes -FollowSymLinks,上传目录务必加Options None
屏蔽非法入口与非必要方法
攻击者常利用默认开放的接口发起无效或恶意请求,消耗解析与路由开销:
- 禁用非业务必需的 HTTP 方法:
<LimitExcept GET POST HEAD>Require all denied</LimitExcept> - 拦截敏感文件访问:
<FilesMatch "\.(htaccess|htpasswd|env|log|bak|git|svn)$">Require all denied</FilesMatch> - 隐藏服务器信息:
ServerTokens Prod和ServerSignature Off,减少指纹暴露带来的定向攻击

















