本地 Docker 响应时间图,展示直连上游、ModSecurity NGINX、Coraza Caddy 的中位数、p95 与内存快照。
最终实验为每条路径顺序发送 40 个 localhost 请求;这些值是可复现微基线,不是吞吐或生产容量结论。

    实验状态

    对象
    本地响应时间与资源微基线
    状态
    已完成动手实测
    更新
    2026-07-26

    证据原则

    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 直连对照

    ModSecurity 路径

    127.0.0.1:18181 上的 ModSecurity 3.0.16 + NGINX + OWASP CRS 4.25.0

    Coraza 路径

    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.sh

    JSON 摘要中应分别包含上游、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 容器的资源快照。

    观察结果

    本轮动手实测说明了什么

    直连上游

    中位 0.983 ms

    未保护的 go-httpbin 对照在最终顺序实验中记录 p95 2.172 ms。

    ModSecurity 路径

    中位 3.956 ms

    ModSecurity + NGINX 路径的 40 次请求 p95 为 5.518 ms。

    Coraza 路径

    中位 3.571 ms

    Coraza + Caddy 路径的 40 次请求 p95 为 4.904 ms。

    内存快照

    68.85 vs 57.2 MiB

    采样后 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

    证据上下文

    延迟微基线包含未保护的上游对照。

    直连路径让结果更容易解释,但仍无法隔离代理、引擎、容器、调度、日志和预热等全部影响。

    直连上游、ModSecurity NGINX 与 Coraza Caddy 三条本地响应时间路径的共享 Docker 拓扑。

    开放证据

    下载经过安全筛选的结果文件

    文件公开状态矩阵和固定版本摘要,不发布原始容器日志或无关本地数据。

    限制

    这个结果不能证明什么

    相关研究

    继续研究 本地响应时间与资源微基线