NEW 应用部署已上线:压缩包或 Git → 直接运行在 Edge

把流量, 调成恰到好处 the edge, your recipe.

Chimichurri 是一套自托管的 Rust 边缘平台。路由、缓存、WAF、自动证书与 DNS、Luau 脚本, 以及把你的应用直接部署到 Edge 节点——每一次变更都是可审计、可回滚的不可变快照。

Control
—
Active Revision
—
往返延迟
—
01请求旅程

一个请求,在 Edge 里走过的每一步

Edge 把站点规则编译成有序流水线。挑一个场景,看请求在哪一步被放行、改写、缓存或拦下。

—
准备中
edge · trace

            
02秘制配方

六种原料,调出一张完整的边缘网络

每一样都是 Edge 原生实现、随快照一起下发,不需要再拼装 Nginx 模块和外部脚本。

欧芹 · Parsley

声明式路由

精确 / 通配 / 正则 Host,前缀 / glob / 正则 Path,方法、Header、Query、客户端 CIDR 条件;改写与请求模拟器。

HIT92%
橄榄油 · Olive Oil

边缘缓存

原子本地文件、容量 / LRU、安全 Key 与 Vary 规则、stale 策略,以及由 Control 协调的多节点 Purge。

89天后续期
红酒醋 · Vinegar

证书自动化

动态 SNI 证书、HTTP-01 与 DNS-01 通配符签发、自动续期、HSTS 与 HTTP→HTTPS,私钥加密存储。

牛至 · Oregano

Luau 脚本

请求 / 响应 / 日志钩子与 fetch(ctx) 函数路由,预编译、VM 池化,并带内存与指令中断上限。

Awww.example.comSYNCED
Aapp.example.comSYNCED
AAAAcdn.example.comWAITING
大蒜 · Garlic

DNS 自动对齐

按部署标签把健康 Edge 写入 Cloudflare A / AAAA;节点变化即时全量对账,没有健康节点时保留旧记录而不是删除。

辣椒 · Chili

访问控制 · 限流

按时区、CIDR、GeoIP 国家 / 城市、UA、方法与 Header 的有序策略;可信代理还原客户端 IP;滑动窗口限流。

03不可变发布

草稿、快照、ACK。
出错就留在上一版。

每次发布都把草稿编译成内容寻址的快照。Edge 自己拉取、校验、编译、暂存,再原子切换并回执;任何一步失败,节点继续服务旧版本,回滚只是再发布一个新 Revision。

  • 拉取
  • 校验
  • 编译
  • 暂存
  • 激活 + ACK
snapshot Revision #— sha256:—
就绪
此演示在浏览器内模拟,起点取自线上 Control 当前 Revision。
04应用部署

源码进来,Edge 上跑起来,CDN 接上去

上传压缩包或填写公开 Git 仓库。远程 Build Worker 用 Nixpacks / Dockerfile / Compose 构建出不可变 Bundle,Edge 上的 Container Supervisor 校验后运行,并作为 managed_app 源站接入已有站点、证书和缓存。

Bundle 架构
  1. 源码

    github.com/you/hello-node
  2. 远程构建

    Dockerfile
  3. 不可变 Bundle

    sha256:…
  4. Edge 运行

    按架构放置
  5. 接入 CDN

    hello.example.com
build-worker · log

            
edge-aarm64
—
edge-bamd64
—
edge-camd64
—

Serverless 按节点选择启用:普通 CDN 节点不需要 Docker。架构不匹配的目标会停在 WAITING_FOR_EDGES 并给出原因,已有实例不受影响。

05原生 WAF

异常分数制,与 OWASP CRS 同一套思路

托管检测组复用 OWASP CRS v4.29.0 的模式数据,SQLi / XSS 由 libinjection 与精选 CRS 正则检测。每条命中累加分数,超过阈值才拦截;先 log 再 block。

    Anomaly score 0 阈值 5
    —
      06配置即快照

      写的是声明,发的是快照

      控制台里的每个表单最终都落成同一份可 Diff 的快照 JSON;脚本是快照的一部分,和规则一起原子激活。

      {
        "id": "default",
        "priority": 1,
        "match": { "methods": [], "path": { "type": "prefix", "value": "/" } },
        "steps": [
          { "type": "waf", "policy_ref": "edge_waf" },
          {
            "type": "rate_limit",
            "id": "default-per-ip",
            "key": { "client_ip": true, "host": false, "path_prefix_segments": 0, "headers": [] },
            "window_seconds": 60,
            "max_requests": 300,
            "deny_status": 429
          }
        ],
        "action": { "type": "proxy", "origin_pool": "web" }
      }
      -- 在代理前运行;可以改写请求,也可以直接应答
      function on_request(ctx)
        ctx.request.headers["x-chimichurri-script"] = "ran"
        ctx.vars.bucket = "blue"
        if ctx.request.path == "/script" then
          ctx.response.status = 200
          ctx.response.headers["content-type"] = "text/plain"
          ctx.response.headers["x-script-bucket"] = ctx.vars.bucket
          ctx.response.body = "hello from Luau\n"
        end
      end
      -- route.action = { "type": "function", "script_ref": "hello_function" }
      function fetch(ctx)
        return {
          status = 200,
          headers = { ["content-type"] = "text/plain; charset=utf-8" },
          body = "hello from serverless " .. ctx.request.path
        }
      end
      # Control 的公开健康检查
      curl -s https://chimichurri.ikechan8370.com:48370/healthz
      
      {"status":"ok","active_revision":…}

      这碗酱,已经在你的节点上调好了。

      登录控制台,发布一个 Revision,或者把下一个项目部署到 Edge。

      进入控制台