中国与亚太部署方案速览
更新时间:2026-07-18。本页是执行入口:先给出可以直接照做的决策与命令,细节全部链接到两篇深度文档——分阶段方案与云厂商调研。
整体拓扑:四个部署单元
当前业务由四个部署单元组成。C 端门户是独立仓库(sub2api-frontend,产品名 OneSeat),跑在 Cloudflare Workers 上;管理后台是 Sub2API 内置前端,跟着 Go 进程走,不需要单独部署。
| 组件 | 载体 | 说明 |
|---|---|---|
| OneSeat C 端前端 | Cloudflare Workers(React Router SSR,绑定 oneseatai.com/*) | Worker 同时把 /api/v1/* 反代到 Sub2API 源站,浏览器只用相对路径、无 CORS |
| Sub2API 应用 | Docker 容器(镜像 weishaw/sub2api) | API 网关 + 内置管理后台,8080 端口 |
| PostgreSQL 15+ | 第一阶段同机容器 → 第二阶段云托管 HA | 事实来源:用户、Key、余额、订单、用量 |
| Redis | 第一阶段同机容器 → 第二阶段云托管标准主从 | 并发槽位、限流、锁、队列,不是可清空缓存 |
text
用户浏览器 ─ oneseatai.com ──> CF Worker(SSR + /api/v1/* 反代)──┐
SDK / CLI ─ api.oneseatai.com ───────(直连,不经过 Worker)──────┼─> Sub2API :8080 ─> PostgreSQL / Redis
管理员 ──── Sub2API 源站域名(内置管理后台,加 IP/VPN 限制)──────┘本页下文说的「服务器部署」指的是 Sub2API + PostgreSQL + Redis 这三件;前端的部署与切换见下一节。
C 端前端(Cloudflare Workers)怎么部署
- 部署命令:在
sub2api-frontend仓库执行npm run deploy(= build +wrangler deploy)。 - Worker 反代的上游由
wrangler.jsonc → vars.SUB2API_ORIGIN控制,当前指向测试环境(https://testsub.zeabur.app)。生产切换 = 把SUB2API_ORIGIN改成生产 Sub2API 域名后重新 deploy,业务代码不动。 - 网关 API 流量(
api.oneseatai.com/v1)应直连 Sub2API 源站,不要走 Worker 反代——SSE/WS 长流多一跳加延迟,还受 Worker CPU/连接限制。 - 大陆访问注意:
*.workers.dev在大陆基本不可用;自定义域名走 Cloudflare 全球网络在大陆可达,但质量随运营商和时段波动。如果大陆成为核心市场且已备案,备选方案是把 SSR 前端用react-router-serve打成 Node 容器搬到大陆源站同机部署(Cloudflare 中国网络需企业版 + 备案,不作为默认方案)。 - 管理后台不在这个仓库里,直接访问 Sub2API 源站域名,并按生产安全加固加 IP/VPN/零信任限制。
先选路线(合规决定架构)
| 你的情况 | 路线 | 说明 |
|---|---|---|
| 主要用户在大陆,已有/可办 ICP 备案 | 大陆 Region(广州/深圳或上海) | 入口延迟最低;域名解析到大陆服务器必须完成 ICP 备案 |
| 想尽快上线,还没备案 | 中国香港 | 免备案,大陆与 APAC 的折中;大陆访问质量随运营商/时段波动 |
| 东南亚用户为主 | 新加坡 | 国际链路稳定;不解决大陆低延迟,也不等于获得上游地区授权 |
云厂商默认选阿里云(大陆/香港/新加坡/东京全栈最完整),腾讯云同级备选(香港精品 BGP 值得实测)。不要跨云拼接核心数据层。详见云厂商调研 §1。
大陆 + APAC 双低延迟没有捷径
短期只能选一个数据主地域。不要让大陆应用远程连香港/新加坡的 PostgreSQL/Redis——Redis 里的并发槽位、锁和 Pub/Sub 对跨境 RTT 极度敏感。真正的双区域 active-active 需要数据分区与账务一致性改造,是独立研发项目。
分阶段架构
| 阶段 | 触发条件 | 架构 | 月成本量级(大陆) |
|---|---|---|---|
| 一:0~100 用户 | 验证期,可接受单机停服 | 1 台 4C8G,docker-compose.local.yml 全家桶 + Caddy/Nginx | 300~900 元 |
| 二:100~500 用户 | 已收费 / 峰值活跃流 >20~30 | 2 台 4C8G 跨可用区跑 docker-compose.standalone.yml,托管 PG HA + 托管 Redis 主从 + ALB/CLB | 1,800~4,500 元 |
| 三:500+ 用户 | 收入关键 / 要求 99.9%+ | 3+ 副本、蓝绿发布、PITR、第二地域冷/温灾备 | 8,000~20,000+ 元 |
只要开始稳定收费,即使用户不到 100 也直接按第二阶段建设。 各阶段的规格、连接池参数、扩容阈值和压测验收标准见分阶段方案。
第一阶段部署命令
在服务器上:
bash
mkdir -p /srv/sub2api && cd /srv/sub2api
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-deploy.sh -o docker-deploy.sh
chmod +x docker-deploy.sh
./docker-deploy.sh # 生成 .env(含随机密钥)、数据目录
docker compose up -d
docker compose logs sub2api | grep "admin password" # 初始管理员密码上线前的生产修订(不要跳过):
- 镜像固定具体版本号,禁止长期
latest。 .env设BIND_HOST=127.0.0.1,由宿主机 Caddy/Nginx 终止 HTTPS 后转发 8080;5432/6379 不暴露。- 保管好
.env里的JWT_SECRET、TOTP_ENCRYPTION_KEY、POSTGRES_PASSWORD——它们必须终身固定,丢失或变更会导致会话失效、2FA 全部作废。 - 小机器收敛连接池:
DATABASE_MAX_OPEN_CONNS=20、REDIS_POOL_SIZE=64(默认值偏大)。 - 开启 URL allowlist,反向代理配置见反向代理与 HTTPS。
数据库迁移怎么做
- 应用启动时自动执行
backend/migrations/*.sql向前迁移,按文件名顺序应用并记录到schema_migrations(文件名 + 校验和)。升级 = 换镜像重启,迁移自动完成,无需手工跑 SQL。 - 迁移是 forward-only,没有自动回滚。回退应用版本不等于回退库结构,因此每次升级前必须先
pg_dump。 - 换服务器迁移(本地目录版):
docker compose down→ tar 整个部署目录 → scp 到新机 → 解压up -d。配置、密钥、数据一次带走。详见升级、备份与迁移。
备份怎么做
| 备份 | 周期 | 保留 | 命令/方式 |
|---|---|---|---|
| PostgreSQL 逻辑备份 | 每日 | 7~30 天 | docker compose exec -T postgres pg_dump -U sub2api -d sub2api -Fc > backups/xxx.dump |
| 升级前备份 | 每次发布 | 两个版本周期 | 同上,发布流程第一步 |
| 完整停机快照 | 每周 | 4~8 份 | down 后 tar 整个目录,再 up -d |
| 异地备份 | 每日 | 独立账号/区域的对象存储 | rclone/ossutil 同步,客户端加密 |
三条铁律:
- 不要在线
cp -r postgres_data——运行中的数据目录复制不保证一致性。 - 每月把最近备份恢复到隔离实例演练一次,验证登录、API Key、余额和历史用量;没恢复过的备份不算备份。
- 备份含用户信息与上游凭证,必须加密存储、最小权限。
第二阶段改用托管 PostgreSQL 后,开启自动备份 + PITR(7~30 天)+ 跨地域备份,逻辑备份降为兜底。
进入第二阶段时的已知坑
- 所有副本必须共享同一套 PG、Redis、
JWT_SECRET、TOTP_ENCRYPTION_KEY和时区,见多实例与高可用。 - 当前
deploy/docker-compose.standalone.yml没有透传TOTP_ENCRYPTION_KEY,多副本上线前要在部署模板中自行补齐,否则每次启动随机生成会打断所有 2FA。 - PostgreSQL 用直连主库地址(项目依赖会话级 advisory lock,不要默认接 transaction-mode PgBouncer);Redis 选标准主从单分片,不要 Cluster。
- LB 需支持 WebSocket/SSE,idle timeout ≥600 秒并开启 connection draining。
深入阅读
- 香港生产部署执行手册——已定案的采购清单与上线步骤(2026-07-18)
- 香港链路延迟优化清单——四段链路拆解与逐项可勾选的优化清单(2026-07-23)
- 中国大陆与亚太生产部署分阶段方案——规格、连接池、扩容阈值、RPO/RTO、压测验收
- 中国大陆与亚太生产部署云厂商调研——阿里云/腾讯云/华为云逐项核查与合规边界
- 升级、备份与迁移 ・ PostgreSQL 与 Redis 运维 ・ 生产环境检查表