跳转至

Rate Limiter 部署指南

(本页面为 tools/rag-worker/docs/RATE_LIMITER_DEPLOYMENT.md 的站点版本,包含部署、KV 绑定与验证示例)

概述

RAG Worker 的会话累积成本限流系统用于防止低频持续攻击。该系统基于会话、IP 地址和指纹的多维度识别,在指定时间窗口内追踪累计调用次数,超过阈值后强制冷却。

部署步骤(摘要)

  1. 创建 KV Namespace:

    ```bash
    wrangler kv:namespace create "RATE_LIMIT_KV"
    ```
    
  2. wrangler.toml 添加 KV 绑定:

    ```toml
    [[kv_namespaces]]
    binding = "RATE_LIMIT_KV"
    id = "YOUR_ACTUAL_KV_NAMESPACE_ID"
    preview_id = "YOUR_PREVIEW_KV_NAMESPACE_ID"  # 可选
    ```
    
  3. (可选)在 [vars] 中配置限流参数:

    ```toml
    [vars]
    RATE_LIMIT_ENABLED = "true"
    RATE_LIMIT_WINDOW_MS = "3600000"
    RATE_LIMIT_MAX_REQUESTS = "20"
    RATE_LIMIT_COOLDOWN_MS = "900000"
    ```
    
  4. 部署并验证:

    ```bash
    npm run deploy
    # 运行测试脚本触发限流
    ./test-rate-limit.sh
    ```
    

验证脚本示例

tools/rag-worker/docs/RATE_LIMITER_DEPLOYMENT.md 中的完整验证脚本(已复制到站点文档目录)。

实现提醒

  • 限流中间件位于 tools/rag-worker/src/middleware/rate-limiter.ts,确保 tools/rag-worker/src/worker.ts 已导入 checkRateLimit 并将 RATE_LIMIT_KV 绑定传入环境。