Cloudflare Workers vs Pages 区别详解
概述
Cloudflare 提供两个主要的产品用于应用部署:Workers 和 Pages。两者都运行在 Cloudflare 的全球边缘网络上,但定位和使用场景有显著区别。
核心区别对比
| 对比维度 | Cloudflare Workers | Cloudflare Pages |
|---|---|---|
| 定位 | 无服务器计算平台 | 全栈应用托管平台 |
| 主要用途 | 边缘计算、API、中间件 | 静态网站、JAMstack 应用 |
| 代码执行 | 原生支持 JS/TS/Python/Rust | 通过 Functions 实现动态功能 |
| 部署方式 | Wrangler CLI / 控制台 | Git 集成 / 直接上传 / C3 CLI |
| 适用场景 | API、请求修改、数据处理 | 博客、文档站、前端应用 |
| 构建流程 | 无(直接部署代码) | 支持构建命令和输出目录配置 |
| 预览部署 | 支持 | 每个 PR 自动生成预览 |
Cloudflare Workers
是什么?
Workers 是一个无服务器(Serverless)计算平台,允许在 Cloudflare 全球边缘网络上运行代码,无需管理服务器。
核心能力
- 边缘计算 - 在全球 300+ 节点执行代码,延迟极低
- 多种语言 - 支持 JavaScript、TypeScript、Python、Rust
- 无状态/有状态 - 支持 Durable Objects 实现状态管理
- 定时任务 - 支持 Cron Trigger 定时执行
- AI 推理 - 通过 Workers AI 运行机器学习模型
典型使用场景
mermaid
graph LR
A[API 服务] --> B[Workers]
C[请求拦截/修改] --> B
D[定时任务] --> B
E[AI 推理] --> B
F[中间件/代理] --> B- REST API - 构建无服务器后端接口
- 请求修改 - 修改请求/响应头、A/B 测试
- 代理转发 - 隐藏真实后端地址
- 定时任务 - Cron 定时执行后台任务
- AI 应用 - 边缘 AI 推理
部署示例
bash
# 安装 Wrangler CLI
npm install -g wrangler
# 创建项目
npx wrangler init my-worker
# 本地开发
npx wrangler dev
# 部署
npx wrangler deployCloudflare Pages
是什么?
Pages 是一个全栈应用部署平台,专注于前端应用和静态网站的托管,同时支持通过 Functions 实现动态功能。
核心能力
- Git 集成 - 连接 GitHub/GitLab 自动部署
- 框架支持 - 原生支持 React、Vue、Next.js、Astro 等
- Pages Functions - 无服务器函数,类似 Workers
- 预览部署 - 每个 PR 自动生成预览环境
- 自定义域名 - 免费 SSL,自动配置
典型使用场景
mermaid
graph LR
A[静态网站] --> B[Pages]
C[文档站] --> B
D[博客] --> B
E[前端应用] --> B
F[全栈应用] --> B- 静态网站 - 博客、文档、落地页
- 前端框架应用 - React/Vue/Next.js 等
- 全栈应用 - 结合 Pages Functions 实现后端逻辑
- 文档站 - VitePress、VuePress、Docusaurus 等
部署示例
bash
# 方式一:Git 集成(推荐)
# 1. 在 Cloudflare Dashboard 连接 GitHub 仓库
# 2. 配置构建命令和输出目录
# 3. 每次 Push 自动部署
# 方式二:直接上传
npx wrangler pages deploy dist --project-name=my-site
# 方式三:C3 命令行创建
npm create cloudflare@latest my-site如何选择?
选择 Workers 的情况
- ✅ 需要构建 API 接口
- ✅ 需要修改请求/响应(如添加安全头、A/B 测试)
- ✅ 需要定时任务(Cron Trigger)
- ✅ 需要有状态的边缘计算(Durable Objects)
- ✅ 需要AI 推理(Workers AI)
选择 Pages 的情况
- ✅ 部署静态网站或前端应用
- ✅ 需要自动部署(连接 Git 仓库)
- ✅ 需要预览部署(每个 PR 生成预览)
- ✅ 需要简单的后端逻辑(Pages Functions)
- ✅ 站点主要是静态内容
两者结合使用
实际上,Workers 和 Pages 可以结合使用:
用户请求 → Pages(前端应用)
↓
→ Workers(API 接口)
↓
→ D1/R2/KV(数据存储)Pages Functions vs Workers
Pages 通过 Functions 提供动态功能,与 Workers 非常相似:
| 对比 | Pages Functions | Workers |
|---|---|---|
| 部署 | 随 Pages 一起部署 | 独立部署 |
| 路由 | 基于文件路径(/api/hello.js) | 自定义路由配置 |
| 适用 | 简单后端逻辑 | 复杂后端服务 |
| 限制 | 与 Pages 计划共享 | 独立计费 |
建议:简单后端逻辑用 Pages Functions,复杂 API 服务用独立 Workers。
定价对比
Workers 定价
| 计划 | 请求数/天 | 价格 |
|---|---|---|
| 免费 | 100,000 | $0 |
| 付费 | 无限 | $5/月起步 |
Pages 定价
| 计划 | 构建时长/月 | 价格 |
|---|---|---|
| 免费 | 500 次构建 | $0 |
| 付费 | 无限 | $20/月起步 |
💡 提示:具体定价请参考 Cloudflare 官方定价页
总结
Workers = 边缘计算引擎(干活的工具)
Pages = 网站部署平台(展示的舞台)
小型项目/静态站点 → Pages
API 服务/边缘计算 → Workers
全栈项目 → Pages + Workers 结合参考资源
最后更新: 2026-05-17