1端到端架构图
┌─────────────┐ HTTPS (统一 sk-, Base URL=api.yourdomain.com/v1)
│ 用户/客户端 │──────────────────────────────┐
└─────────────┘ │
▼
┌──────────────────────────────────────┐
│ Cloudflare 边缘 (全球 Anycast) │
│ · DNS / TLS / WAF / DDoS │
│ · AI Gateway: 缓存 / 限流 / 重试 / 日志 │
│ · Pages: 前端控制台(静态) │
└──────────────────────────────────────┘
│ Cloudflare Tunnel (出站,加密)
▼
┌──────────────────────────────────────┐
│ 原站 VPS (曼谷/新加坡, 入站端口全关) │
│ 聚合网关 (New API / LiteLLM, Docker) │
│ · 用户/鉴权 · 渠道编排 · 路由/回退 │
│ · 倍率计费 · 用量记账 · 审计日志 │
│ D1/Postgres(计费) · KV/Redis(会话/缓存) │
│ Secrets Store (各渠道真实 key, 集中轮换) │
└──────────────────────────────────────┘
┌───────────────────┬────────────┴───────┬───────────────────┐
▼ ▼ ▼ ▼
┌────────────────┐ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐
│ 付费批发渠道 │ │ OpenRouter 透传 │ │ 官方免费层渠道 │ │ BYOK 用户渠道 │
│ OpenAI/Claude/ │ │ (聚合/回退) │ │ Groq/Gemini/ │ │ 用户自带 key │
│ Google 直采 │ │ │ │ Cerebras/CF AI │ │ (零库存) │
└────────────────┘ └────────────────┘ └────────────────┘ └────────────────┘
[保 SLA · 高权重] [回退/广覆盖] [免费档 · 低权重] [开发者档 · 软件费]
✗ 不接入: 逆向接口 / 养号号池 / 住宅代理 (见 02/08)
2组件清单
| 层 | 组件 | 选型 | 职责 |
|---|---|---|---|
| 边缘 | DNS/WAF/CDN | Cloudflare | 入口防护、TLS、DDoS |
| 边缘 | AI Gateway | Cloudflare(免费) | 缓存/限流/重试/可观测 |
| 前端 | 控制台/官网 | Cloudflare Pages | 注册/充值/用量看板/文档 |
| 网关 | 聚合网关 | New API 或 LiteLLM | 鉴权/渠道/路由/计费/记账 |
| 数据 | 计费库 | D1 或 Postgres(VPS) | 用户/额度/账单/审计 |
| 数据 | 会话/缓存 | KV 或 Redis | token 映射、限流计数 |
| 安全 | 密钥保险库 | Secrets Store / Vault | 渠道真实 key 集中管理、轮换 |
| 原站 | VPS | 曼谷/新加坡 KVM | 承载网关后端(仅合法负载) |
| 隧道 | cloudflared | Cloudflare Tunnel(免费) | 出站隧道,隐藏原站 IP |
3请求数据流
- 客户端带统一
sk-请求api.yourdomain.com/v1/chat/completions。 - Cloudflare 边缘:WAF 清洗 → AI Gateway 查缓存(命中即返回,零后端成本)→ 未命中转发。
- 经 Tunnel 进入原站聚合网关:校验 sk-、查额度、令牌桶限流。
- 按模型名 + 意图选渠道:付费批发(高权重)/ 免费层(低权重)/ BYOK(按用户)。
- 从 Secrets Store 取该渠道真实 key,注入请求头,转发到后端。
- 后端 429/5xx → 自动回退到备用付费渠道(不回退到逆向源)。
- 返回结果;按倍率扣额度、写用量记账与审计日志。
4零信任原站保护
🕳️原站暗网化
VPS 关闭所有入站端口(含 22/80/443),仅 cloudflared 出站建隧道(7844,QUIC 优先,回退 HTTP/2)。公网扫不到真实 IP。
🪪Access + JWT
敏感后台/管理端用 Cloudflare Access,要求合法 JWT(AUD),cloudflared 本地二次密码学校验,伪造包边缘丢弃。
🔑出站代理 + 密钥隔离
渠道真实 key 只存 Secrets Store,由网关在转发时注入,绝不下发到客户端;支持集中轮换。
5模块边界(迁移开发用)
迁移到开发目录时,按以下边界拆分,便于独立开发/部署/版本化:
| 模块 | 边界 | 产物 |
|---|---|---|
| edge/ | Cloudflare Workers/Pages + AI Gateway 配置 | wrangler 项目、缓存/限流规则 |
| gateway/ | 聚合网关部署 + 渠道声明式配置 | docker-compose、config.yaml(渠道/倍率/路由) |
| billing/ | 计费/额度/账单 schema 与逻辑 | D1/Postgres 迁移脚本 |
| console/ | 用户前端(注册/充值/看板) | Pages 静态站 |
| infra/ | VPS + Tunnel + Secrets + CI/CD | IaC / cloudflared 配置 / GitHub Actions |
📦 与本调研的衔接
本调研产出在 AI_Gateway/。迁移时把渠道清单(07)→ gateway/config、倍率/套餐(06)→ billing、基础设施(05/09)→ infra、合规条款(08)→ console 的用户协议分别落位即可。
6CI/CD
- 边缘:Cloudflare Workers Builds 监听 main 分支,自动
wrangler deploy,从 Secrets Store 注入密钥。 - 网关:GitHub Actions 构建 Docker 镜像 → 部署到 VPS(经 Tunnel),渠道配置声明式版本化。
- 数据库:迁移脚本随 CI 执行,保证 schema 一致。
- 密钥:绝不入仓,统一走 Secrets Store / Actions Secrets,定期轮换。
分阶段落地节奏见 10 路线决策。