Skip to content

Cloudflare 部署说明

这一页重点解释 EdgeChat 为什么适合直接跑在 Cloudflare 上,以及这套部署方案是怎么降成本的。

Cloudflare 资源

  • D1:持久化业务数据
  • KV:会话存储
  • R2:聊天附件和头像
  • Durable Objects:实时 WebSocket 房间
  • Static Assets:前端静态文件
  • Cron Triggers:定时清理过期消息

成本优化点

  • 静态资源交给 Cloudflare 托管,不再由 Worker 手动转发
  • run_worker_first 只拦截 /api/*/files/*
  • 消息清理改成原生 Cron,避免每次请求都触发额外调度
  • 文件接口返回缓存头,减少重复读取
  • 首页初始化和后台概览都做了聚合接口

运行时配置

当前 wrangler.toml 中的关键配置如下:

toml
[assets]
directory = "./frontend/dist"
not_found_handling = "single-page-application"
run_worker_first = ["/api/*", "/files/*"]

[triggers]
crons = ["0 19 * * *"]

安全边界

  • 大部分接口都需要登录
  • /api/admin/* 额外要求管理员权限
  • 当前 /files/:key 默认是公开访问模式