apache不直接管理cpu和内存配额,但可通过访问控制、请求限流、反向代理分流、缓存优化及模块精简等机制,间接限制对后端服务、文件系统等资源的并发占用,核心是阻止无效、越权或过载请求抵达资源层。

Apache 本身不直接管理操作系统级资源(如 CPU、内存配额),但可通过访问控制、请求调度和负载分担机制,间接限制对后端服务、文件系统、数据库等系统资源的并发占用,从而有效控制访问负载。核心思路是:**不让无效、越权或过载的请求抵达资源层**。
基于客户端地址的精细访问控制
通过 Require 指令限制可访问来源,减少非法扫描、爬虫或恶意请求对服务器资源的消耗:
-
Require ip 192.168.10.0/24—— 仅允许内网子网访问管理接口 -
Require not ip 203.0.113.55—— 明确屏蔽已知攻击源 IP -
Require local—— 仅限本机访问敏感脚本(如监控探针、备份入口)
配合 <requireall></requireall> 可组合条件,例如“仅允许某 IP 且使用特定 User-Agent”,进一步降低误判率。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
按目录或路径实施请求限流
对高开销资源(如动态报表、API 接口、上传入口)启用模块化限流,避免单个路径拖垮整站:
- 启用
mod_ratelimit或mod_evasive:对 /api/v1/report 设置每秒最多 5 个请求,超限返回 429 - 用
<location></location>包裹配置,禁止未登录用户 POST,或限制单次上传大小(LimitRequestBody 10485760) - 对静态资源目录禁用解析执行权限(
Options -ExecCGI -Includes),防止 .php 文件被意外执行消耗 PHP-FPM 资源
利用反向代理与负载均衡分流压力
将 Apache 从“全栈处理者”转为“智能路由层”,把计算密集型任务交由专用后端,自身专注连接管理和缓存:
- 用
mod_proxy_balancer将 /search 请求转发至 Elasticsearch 集群,Apache 不参与检索计算 - 对 /static/ 路径启用
mod_cache+mod_expires,命中缓存即不调用磁盘或后端 PHP - 设置
KeepAliveTimeout 2和MaxKeepAliveRequests 100,平衡连接复用与空闲连接资源占用
关闭冗余功能降低基础开销
每个启用的模块都占用内存并增加请求处理路径长度,精简配置可释放可观资源:
- 运行
httpd -M | grep -v "shared"查看已加载模块,禁用未使用的如mod_info、mod_status(除非需调试)、mod_autoindex - 将
AllowOverride All改为None,避免每次请求都遍历目录查找 .htaccess 文件 - 禁用目录浏览(
Options -Indexes),防止因缺失 index.html 触发耗时的文件列表生成










