nginx 1.31 的 json_set 拒收坏 webhook 比转发快约 13 倍
来源:dev.to — 2026-11-14
📋 概述
nginx 1.31.5 引入 ngx_http_json_module,可以在请求进入 location 之前直接从 JSON body 里读字段做判断。作者搭了一个只接受 payment.created 与 payment.failed 两种事件类型的 webhook,把原生 nginx 拒收和转发给 Python 后端校验两条路径放在一起对比:单并发下平均每秒 24,265 次拒收对 1,874 次,快约 13 倍;在 200 个有效与无效各半的混合请求里,后端请求数直接减半;而当全部请求都合法时,新配置几乎没有额外开销。
🔑 核心要点
加速的本质不是 nginx 处理 HTTP 更快 ,而是省掉一次 TCP 往返和一个 Python 线程。
200 个混合请求里新配置只让 100 个到达后端 ,无效请求全被挡在边缘。
3000 个全合法请求的对照跑显示两套配置吞吐基本持平 。
该模块编进了官方 Docker 镜像 ,但 Ubuntu 24.04 的 apt 包仍停在 1.24.0。
💡 金句
“It's not about nginx being faster at HTTP, it's about deciding which requests are worth a backend's time before spending any.”译:重点不是 nginx 更会处理 HTTP,而是在花掉后端的任何时间之前,先决定哪些请求值得它花时间。
👍 0
❤️ 点赞
👎 0
沉底
← 返回 dev.to 首页