宿主运行环境
macOS aarch64 上的 Docker Desktop 29.2.0,分配 10 CPU 与 7.65 GiB 内存
WAFWiki 原创实验
本地 Docker 响应时间微基线:直连上游、ModSecurity NGINX 与 Coraza Caddy 每条路径 40 个顺序请求,并记录内存快照和限制。

证据原则
WAFWiki 会区分已验证的动手实测、冒烟实测、架构图和方法论说明。任何本地实验都只证明记录环境中的有限路径,不代表完整生产就绪。
环境
macOS aarch64 上的 Docker Desktop 29.2.0,分配 10 CPU 与 7.65 GiB 内存
每条路径 40 个顺序 curl 请求,共 120 个响应时间样本
127.0.0.1:18180 上的 go-httpbin 2.21.0 直连对照
127.0.0.1:18181 上的 ModSecurity 3.0.16 + NGINX + OWASP CRS 4.25.0
127.0.0.1:18182 上的 Coraza 3.7.0 + Caddy 2.11.2 + OWASP CRS 4.25.0
curl time_total;请求采样结束后执行一次 docker stats --no-stream
命令
scripts/run-waf-evidence-lab.shJSON 摘要中应分别包含上游、ModSecurity 与 Coraza 的 40 个样本。
node --input-type=module -e 'const j=await import("./docs/lab-evidence/waf-engine-comparison-2026-07-26.json", { with: { type: "json" } }); console.log(j.default.benchmarks, j.default.resources)'输出中位数、p95、样本数量与两个 WAF 容器的资源快照。
观察结果
直连上游
未保护的 go-httpbin 对照在最终顺序实验中记录 p95 2.172 ms。
ModSecurity 路径
ModSecurity + NGINX 路径的 40 次请求 p95 为 5.518 ms。
Coraza 路径
Coraza + Caddy 路径的 40 次请求 p95 为 4.904 ms。
内存快照
采样后 Docker 报告 ModSecurity 68.85 MiB、Coraza 57.2 MiB;不据此给出容量建议。
能否据此判断性能赢家
单次 localhost 顺序实验没有并发、重复试验、隔离控制或生产流量,无法排名容量。
direct upstream: median=0.983ms p95=2.172ms n=40
ModSecurity + NGINX: median=3.956ms p95=5.518ms n=40
Coraza + Caddy: median=3.571ms p95=4.904ms n=40
ModSecurity memory snapshot: 68.85MiB
Coraza memory snapshot: 57.2MiB
measurement mode: sequential localhost curl time_total证据上下文
直连路径让结果更容易解释,但仍无法隔离代理、引擎、容器、调度、日志和预热等全部影响。

开放证据
文件公开状态矩阵和固定版本摘要,不发布原始容器日志或无关本地数据。
查看同一次实验中的请求状态与时间。
查看 120 个采样汇总、组件版本、资源快照和限制。
限制
相关研究