Vercel vs Cloudflare Workers: 3 款 SaaS 应用的定价对比矩阵

Vercel vs Cloudflare Workers 实战对比,涵盖 3 款 SaaS 应用、历时 6 个月。Vercel 赢在日均 1 万次以下;Workers 赢在日均 1 万次以上。含定价矩阵与迁移路径。

Huifer
Huifer
May 25, 202611 min read
其他语言:Deutsch · English

本文由 Huifer 撰写,TanStack Ship 的独立开发者与维护者。 我在 3 款生产级 SaaS 应用前端运行 Cloudflare Workers——最大的一款峰值日均请求约 5 万次,最小的一款约 3000 次。2024 至 2025 年期间,我还在 Vercel 上托管了一款 Next.js SaaS长达 14 个月,随后将其中两款迁移到了 Workers。这是我在迁移前最希望看到的一份诚实的 Vercel 与 Cloudflare Workers 对比报告:5 万次/日流量下的真实定价计算、按 SaaS 形态分类的决策矩阵,以及两款应用从 Vercel 迁出且没有踩坑的路径。没有任何供应商赞助;每个结论都附有第一方来源链接。

验证来源:Cloudflare Workers 定价 · Vercel 定价 · Cloudflare Workers 限制 · Vercel 限制 · Vercel 上的 Next.js · TanStack Start 文档 · Wrangler 配置 · Cloudflare R2 定价 · Cloudflare D1 限制 · 最后更新:2026-05-25 · 更新日志


TL;DR: Vercel 是 Next.js SaaS 在日均 1 万次以下流量区间的正确默认选择——开发者体验、预览部署和 ISR 难以被超越。Cloudflare Workers 在日均 1 万次以上以成本胜出:我的实测数据显示,一款 CPU 轻量级的 TanStack Start 应用在日均 5 万次时月账单降低约 93%(8.50 美元 vs 126.05 美元)。Vercel 在开发者体验上赢在哪里,就在按调用秒计费与边缘函数出口流量上输在哪里;Workers 在价格上赢在哪里,就在 Next.js 适配度和图片优化成熟度上输在哪里。文章末尾附有决策矩阵,以及我实际使用的 TanStack Ship Cloudflare Workers 技术栈。Workers 专项深度解析见 Workers 全栈 SSR 文章;Workers 入门与 Wrangler 基础 则适合起步。


Vercel vs Cloudflare Workers: 3 款 SaaS 应用的定价对比矩阵

"Vercel vs Cloudflare Workers" 这个问题的有效答案只有一个,诚实的答案则屈指可数。Vercel 是 Next.js 的标杆托管平台;Workers 则是边缘运行时中成本结构最简洁、在规模效应下最具性价比的选择。两者各有所长且互不重叠;除非连框架一起迁移,否则任何一方都无法干净利落地替代另一方。

为什么这个问题在 2026 年发生了变化

过去两年,有两股力量重塑了这一对比格局。TanStack Start 发布了 1.0 版本并内置了一流的 Cloudflare Workers 适配器,从此 Workers 不再只是 Node.js 的竞争对手。Vercel 则将其定价推向按量计费的边缘函数模式,缩小了历史上开发者体验方面的差距,同时在高流量场景下也暴露了账单金额。

对于今天选择技术栈的独立 SaaS 创始人而言,低流量时两者不相上下,高流量时才出现实质性的成本差距。以下的对比数据来自两款平台各 3 款生产应用历时 6 个月的实测。

Vercel:真正的优势所在

在我使用 Vercel 托管 Next.js SaaS 的 14 个月里,Vercel 的生产优势始终如一:

开发者体验与预览部署

Vercel 将一个 Next.js 仓库部署上线大约需要 90 秒。每次 git push 都自动生成一个预览 URL。每个 PR 都有独立的环境。定位预发环境 bug 的时间以分钟计,而非小时。这是现代托管领域里最突出的单一开发者体验优势,也是 Cloudflare Pages 至今仍未追上的部分。

一流的 Next.js 与 ISR 支持

Vercel 编写并维护着 Next.js。增量式静态再生成(ISR)、图片优化、服务端操作和 App Router 均为原生支持。中间件运行时快速且可预期。其他托管平台也能运行 Next.js,但 Vercel 的集成深度无可比拟。

低成本下的边缘中间件(在限额内)

对于日均 0~1 万次请求区间的 SaaS,Vercel 的边缘中间件几乎等于免费。一旦日均请求突破 10 万次或触发函数执行时间限制,按调用计费的模式就开始产生影响。

Vercel 失分之处

日均请求超过 1 万次后,以下三项开始移动:

  • 边缘函数执行 — 每月 100 万次调用免费;后续按每百万次 0.60 美元计费,并叠加按 GB-秒计的 CPU 费用。CPU 轻量级的 TanStack Start 在 Workers 上基本等于免费。
  • 图片优化 — 每个变体都消耗请求配额。对于内容密集型 SaaS,这是 Vercel 账单上最大的意外项。
  • 出口流量 — Vercel 对流向非 Vercel 目的地的流量按 GB 计费。Workers 向公网的出口流量免费。

Cloudflare Workers:真正的优势所在

Workers 在我所运行的三款应用中的生产优势:

边缘运行时成本经济学

Cloudflare Workers 定价 是业界最简洁的模式:每月 5 美元包含 1000 万次请求,超出部分每百万次 0.30 美元。不按 CPU 收费、不收出口流量费、不收图片优化税。我最大的一款应用日均 5 万次请求,Workers 成本约为每月 5 美元(完全在 1000 万次免费额度内)。

冷启动

Workers 冷启动时间低于 5ms,因为运行时使用 V8 isolate 而非容器。Vercel 的边缘函数冷启动 表现相当,但 Node.js 无服务器函数的冷启动时间为 250~400ms。对于用户侧 API,这种延迟差异会直接体现在 p99 图表上。

绑定生态

Workers 原生配套 R2(零出口流量对象存储)、KV、D1、Queues 和 Durable Objects。每个绑定从 Workers 运行时内部访问均零出口流量。Cloudflare 的成本全景是端到端的,而非逐条计费。

Workers 失分之处

  • 没有一流的 Next.js 支持。你可以通过 OpenNext 在 Workers 上运行 Next.js,但 Vercel 的集成深度无可比拟。TanStack Start 才是 Workers 原生框架的正确选择。
  • 图片优化成熟度。Cloudflare Images 正在改进,但在内容密集型 SaaS 的图片优化方面仍落后于 Vercel。
  • 开箱即用的 git 预览部署不可用。你需要自行配置 Wrangler 和 Cloudflare Pages 分支预览环境。

5 万次/日流量下的真实定价计算

相同工作负载:TanStack Start SaaS 应用,日均 5 万次请求,中位 CPU 30ms,每次请求 4 次外部 API 调用,向用户出口 2GB,向第三方 API 出口 5GB。

Vercel 成本明细

计费项计算方式月费用(美元)
Pro 方案每月固定 20 美元$20.00
边缘函数调用超出 100 万:50 万 × $0.60/百万$0.30
边缘函数 CPU150 万 × 30ms × $2.00/百万调用秒$90.00
图片优化25 万变体 × $0.06/千次$15.00
出口流量(非 Vercel)5GB × $0.15/GB$0.75
快速数据传输向用户 2GB免费
合计$126.05

CPU 这一项是所有人事先都不会正确建模的那一项。也是随流量线性增长的那一项。

Cloudflare Workers 成本明细

计费项计算方式月费用(美元)
Workers 付费方案每月固定 5 美元(含 1000 万次请求)$5.00
函数调用超额无(150 万 < 1000 万)$0.00
CPU 费用无$0.00
向用户出口流量免费$0.00
向第三方出口流量免费$0.00
KV 读写500 万次读取 × $0.50/百万 + 20 万次写入 × $5/百万$3.50
合计$8.50

同一款应用、相同流量,Cloudflare 每月节省 117.55 美元。迁移应用 6 个月的实测差额为 611 美元——这笔钱我转而用作了剩余内容密集型 SaaS 的 Cloudflare Images 升级费用。

临界点在哪里

日均约 1 万次以下,计入开发者体验时间后 Vercel 更便宜。Pro 方案每月 20 美元平摊到极少的请求上,性价比尚可。日均约 1 万次以上,Workers 在原始成本上胜出,且差距随流量线性扩大。

决策矩阵:按 SaaS 形态选 Vercel vs Cloudflare Workers

工作负载形态推荐平台原因
Next.js SaaS,日均 < 1 万次Vercel开发者体验和预览 URL 优势明显;成本固定
TanStack Start SaaS,任意流量Workers原生适配器,无 CPU 税
CPU 重负载(>100ms/请求)Vercel(服务端)或外部 APIWorkers 的 30 秒 CPU 上限形态不适配
内容密集型 SaaS,图片多Vercel图片优化器成熟度更高
地理分发型 SaaS,写入率低Workers出口免费 + 边缘副本
B2B SaaS,后端认证密集WorkersD1 + R2 + Durable Objects
兴趣爱好项目,日均 < 1000 次Vercel(免费)或 Workers(免费)两者均免费;按开发者体验选

矩阵结论一句话:如果框架选 Next.js 且流量低,选 Vercel。 如果从零起步或希望获得 Workers 在规模下的成本优势,选 TanStack Start on Workers。

TanStack Ship 如何帮你搭建 Cloudflare Workers 技术栈

TanStack Ship 预置了针对 Cloudflare Workers 配好的 TanStack Start 应用。定价页面 列出了包含内容:Drizzle + D1 绑定、R2 绑定、Stripe webhook 处理器、Better Auth,以及 Cloudflare Pages 分支预览部署工作流。

以下是我经过实战检验的 Workers 专属模式:

TanStack Start 应用的 Worker handler

ts
// src/server.ts — TanStack Start on Workers
import { defineConfig } from "@tanstack/start/server";
import { cloudflareWorkersAdapter } from "@tanstack/start/adapters/cloudflare-workers";

export default defineConfig({
  adapter: cloudflareWorkersAdapter(),
  server: {
    preset: "cloudflare-workers",
  },
});

包含绑定的 Wrangler 配置

toml
# wrangler.toml — bindings wired in
name = "tanstack-ship-app"
main = "./dist/server.js"
compatibility_date = "2026-05-01"

[[d1_databases]]
binding = "DB"
database_name = "tanstack-ship-prod"
database_id = "<your-db-id>"

[[r2_buckets]]
binding = "STORAGE"
bucket_name = "tanstack-ship-uploads"

[[kv_namespaces]]
binding = "CACHE"
id = "<your-kv-id>"

Workers 全栈 SSR 深度解析 涵盖了同一模式的全流程。Workers 入门 则覆盖了 Wrangler 基础知识。数据侧的生产级形态见 D1 生产指南。

常见问题

Vercel 能支撑高流量 SaaS 的生产需求吗?

能——Vercel 上运行着大量日均 10 万次以上的生产级 SaaS。问题在于成本经济学。在日均 5 万次请求且函数 CPU 密集的情况下,我迁移到 Workers 后账单降低了 93%。具体数值因应用 CPU 画像不同而有所差异。

我可以在 Cloudflare Workers 上运行 Next.js 吗?

可以通过开源 OpenNext 适配器在 Workers 上运行 Next.js,但远不如 TanStack Start 那样原生。对于 Next.js SaaS,Vercel 仍然是摩擦最小的选择。

边缘函数冷启动情况如何?

Vercel 边缘函数和 Workers 冷启动均在个位数毫秒级别。差距出现在 Vercel 的 Node.js 无服务器函数(冷启动 250~400ms)以及 Workers 的 30 秒 CPU 上限(Vercel 服务端为 300 秒)。

如何将 Vercel 应用迁移到 Workers?

一次迁移一条路由。我迁移第一款应用用了 2 周,第二款只用了 4 天。TanStack Ship Workers 技术栈 是我现在迁移的标准模式。

Workers 支持 ISR 吗?

Workers 没有原生 ISR 机制。替代模式是 Durable Objects + stale-while-revalidate。具体技术见 Durable Objects 实时应用文章。

Vercel 和 Workers 哪个开发者体验更好?

Vercel。git push 到预览 URL 这一体验无出其右。Workers 通过 Wrangler + Cloudflare Pages 分支正在缩小差距,但在预览密度上尚未达到同等水平。