背景

我在国内有一台后端服务器,想用海外免费的云服务(Cloudflare、Supabase、Vercel 等)来降低成本并规避自建数据库的风险。必要时走代理,整体做到接近零成本

本文分析这套方案的可行性,并给出最优架构。


结论先行

完全可行。 核心思路是:国内服务器做桥接层,所有海外服务在服务端调用(不受 GFW 影响),静态资源通过国内服务器反代加速。数据库用托管服务替代自建,消除运维风险。


一、各个服务的网络可达性

这是最关键的问题。直接测一遍:

服务 从国内服务器访问 从国内浏览器访问 说明
Supabase (API/DB) ✅ 可达 ⚠️ 较慢 REST API/PostgreSQL 直连,延迟约 100-200ms
Cloudflare R2 ✅ 可达 ⚠️ 较慢 S3 兼容 API,服务端调用无问题
Cloudflare Workers ✅ 可达 ⚠️ 较慢 服务端 HTTP 调用完全正常
Cloudflare Pages ✅ 可达 ⚠️ 较慢 同上
Resend ✅ 可达 ✅ 正常 邮件 API,调用链路短
Vercel ✅ 可达 ❌ 被墙 需国内服务器反代
Netlify ✅ 可达 ❌ 被墙 同上
Auth0 / Clerk ✅ 可达 ⚠️ 较慢 API 调用正常,前端 SDK 体验一般
Sentry ✅ 可达 ⚠️ 较慢 后端上报没问题
GitHub ⚠️ 不稳定 ⚠️ 不稳定 DNS 污染,建议 hosts 或代理
Google Colab ❌ 被墙 ❌ 被墙 需要全局代理

规律:

  • 服务端(你的服务器 → 海外 API):几乎全部可达,无需代理
  • 浏览器端(用户浏览器 → 海外服务):部分被墙或极慢

这意味着:服务端可以直接调用所有海外 API,不需要额外代理。


二、架构方案

                         ┌──────────────────────────┐
                         │     国内用户浏览器        │
                         └─────────┬────────────────┘
                                   │
                                   ▼
                    ┌──────────────────────────────┐
                    │    国内服务器(你的)          │
                    │                              │
                    │  nginx/caddy 反向代理          │
                    │  API 聚合层                   │
                    │  静态资源缓存                  │
                    └────┬──────┬────────┬─────────┘
                         │      │        │
              ┌──────────┘      │        └──────────┐
              ▼                 ▼                    ▼
    ┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
    │  Vercel/Pages    │ │  Supabase    │ │  Cloudflare R2   │
    │  (前端/静态)      │ │  (数据库)    │ │  (文件存储)       │
    └─────────────────┘ └──────────────┘ └──────────────────┘
              │                 │                    │
              ▼                 ▼                    ▼
    ┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
    │  Workers         │ │  Resend      │ │  Sentry          │
    │  (定时/边缘逻辑)  │ │  (邮件)      │ │  (错误监控)       │
    └─────────────────┘ └──────────────┘ └──────────────────┘

核心原则

  1. 前端托管在 Vercel / Cloudflare Pages — 免费、自动 CDN
  2. 国内服务器只做反向代理和 API 聚合 — 国内用户浏览器访问国内服务器,国内服务器转发到海外服务
  3. 数据库用 Supabase — 不再自建 MySQL/PostgreSQL,消除数据丢失风险
  4. 服务端直连海外 API — 从国内服务器到海外服务不需要代理

三、详细选型

3.1 前端托管

方案 优势 劣势
国内服务器直接托管 延迟最低 浪费服务器性能,没有 CDN
Vercel + 国内服务器反代 全球 CDN + 国内加速 多一层转发
Cloudflare Pages + Workers 反代 统一生态 免费计划国内节点有限

推荐:Vercel(前端)+ 国内服务器(反代)

国内用户 → 国内服务器 nginx → Vercel。海外用户直连 Vercel CDN。

3.2 数据库

方案 月费 风险
自建 MySQL/PostgreSQL 0 元(用服务器资源) 磁盘故障、数据丢失、需手动备份
Supabase 免费版 0 元 500MB 上限,自动备份
Neon 免费版 0 元 0.5GB 上限,Serverless
Turso 免费版 0 元 500MB,边缘 SQLite

推荐:Supabase

  • 托管 PostgreSQL,自动备份 + 点时间恢复
  • 500MB 对个人博客/小项目完全够用
  • REST API + JS SDK 开箱即用
  • 自带 Auth,省一个服务

3.3 对象存储

方案 免费额度 出站费
Cloudflare R2 10GB 0 元(无出站费)
AWS S3 5GB
阿里云 OSS 5GB

推荐:Cloudflare R2

唯一天花板级的免费策略:不收出站带宽费。图片/文件通过国内服务器转发给用户。

3.4 其他服务

需求 选型 费用
邮件发送 Resend 100 封/天,免费
错误监控 Sentry 5000 事件/月,免费
定时任务 Workers Cron 10 万请求/天,免费
AI 推理 Workers AI / 通义千问 免费 / 按量计费
数据分析 Plausible 自建 免费

四、成本核算

假设一个日活 1000 的个人项目:

项目 费用
国内 ECS(2C4G,已有) 0 元(沉没成本)
Supabase 免费版 0 元
Vercel 免费版 0 元
Cloudflare R2 免费版 0 元
Resend 免费版 0 元
Workers 免费版 0 元
Sentry 免费版 0 元
合计 0 元 / 月

五、数据库风险控制

自建数据库的主要风险:

风险 Supabase 如何解决
磁盘故障 自动跨可用区冗余
数据误删 点时间恢复(PITR)
安全漏洞 自动打补丁
性能瓶颈 自动扩展
备份丢失 每日自动备份
DDoS 攻击 内置防护
SSL 证书 自动管理

对比自建: 以上每一项你都得自己操心。对于个人项目来说,花时间维护数据库不值得。


六、代理方案

从国内服务器到海外服务通常不需要代理,但如果遇到个别服务被墙(如某些 API 端点),可以:

# 在服务器上配正向代理
server {
    listen 1080;
    resolver 8.8.8.8;
    proxy_pass $scheme://$host$request_uri;
}

或者更简单的方式:用 Cloudflare Workers 做中转代理。


七、实际部署拓扑

用户访问
    │
    ├─ 国内用户 → myblog.com (DNS 解析到国内服务器 IP)
    │              │
    │              ├─ /static/*     → 本地 nginx 直接返回
    │              ├─ /api/*        → 本地 API 聚合层
    │              │                  ├─ Supabase (数据库)
    │              │                  ├─ Workers (逻辑)
    │              │                  └─ Resend (邮件)
    │              └─ /*            → 反向代理到 Vercel
    │
    └─ 海外用户 → myblog.com (DNS 解析到 Vercel CDN)
                   │
                   └─ Vercel Edge Network

八、总结

维度 结论
可行性 ✅ 完全可行
成本 0 元/月(假设已有国内服务器)
数据库风险 几乎为零(托管服务替代自建)
访问速度 国内用户通过国内服务器转发,延迟可控
维护工作量 极低,所有服务都有免费 SLA
扩展性 好,Supabase 可随时升级付费版

这套方案唯一的硬成本是你的国内服务器。如果连服务器都不想维护,可以全部走 Cloudflare Workers + Pages + R2 + Supabase 的全栈海外方案——但国内用户访问速度会下降。

有舍有得,这套混合架构是当前成本、速度、风险三者最优解。