Cloudflare Pages 是 Cloudflare 推出的全栈 Web 托管平台,深度集成于 Cloudflare 全球网络(覆盖 330+ 城市、120+ 国家)。它结合了静态站点托管、边缘函数(Pages Functions)和 Workers 运行时,让开发者可以在一个平台上完成从静态页面到全栈应用的部署。
# 部署一个 Astro 静态站点到 Pages
# 1. 连接 Git 仓库
# 2. 设置构建命令
# 构建命令:
npm run build
# 输出目录:
dist/
# 完成!自动部署到全球 330+ 节点为什么选择 Cloudflare Pages?
全球边缘网络
Cloudflare 拥有业界最大的 全球网络 之一,Pages 站点默认部署在所有节点上。用户访问时自动路由到最近的节点,实现亚秒级 TTFB(首字节时间)。
| 功能 / 特性 | Cloudflare | Vercel | Netlify | AWS CloudFront |
|---|---|---|---|---|
| 边缘节点数 | 330+ | 100+ | 50+ | 600+ |
| 覆盖国家 | 120+ | 40+ | 30+ | 90+ |
| 中国大陆节点 | ||||
| DNS 解析 | 内置 | 外部 | 外部 | Route53 |
| DDoS 防护 | 内置免费 | 付费 | 付费 | 付费 |
| 免费层带宽 | 无限 | 100 GB | 100 GB | 1 TB/月 |
| WAF 规则 | 免费 | 付费 | 付费 | 付费 |
自动 CI/CD 集成
Pages 支持直接从 GitHub、GitLab 或 Bitbucket 仓库自动部署。每次推送自动触发构建和部署:
- Git Push:开发者推送代码到仓库,Pages 通过 webhook 收到通知。
- 构建:Pages 在隔离环境中运行构建命令(
npm run build),支持自定义环境变量。 - 预览部署(可选):每个 PR 自动生成一个唯一预览 URL,便于团队审阅。
- 生产部署:主分支构建完成后,自动推送到全球边缘网络。
- 智能缓存:Cloudflare 自动缓存静态资源,并支持 缓存标头 的精细控制。
- 原子部署:部署是原子的——要么完全生效,要么回滚到上一版本,不会出现中途状态。
Pages Functions — 边缘端的后端
Pages Functions 是 Cloudflare Pages 最强大的特性之一。它基于 Workers 运行时(V8 引擎),让你在边缘节点运行服务端代码,无需管理服务器。
Functions 的三种形态
# 项目结构
project/
├── public/ # 静态资源
├── functions/
│ ├── api/
│ │ ├── hello.ts # /api/hello
│ │ └── users/[id].ts # /api/users/:id
│ └── _middleware.ts # 全局中间件
└── dist/ # 构建输出
# 文件系统自动映射为路由路径Functions 运行环境能力
运行时能力
- Service Workers API (Fetch, Cache, Request/Response)
- Web Crypto API
- WebAssembly (WASM) 支持
- TCP / UDP Socket(通过
connect()) - HTTP/2、HTTP/3 (QUIC)
- gRPC 支持
绑定与存储
- Workers KV — 全球键值存储
- D1 — 原生 SQL 数据库
- R2 — 对象存储(无出口费)
- Queues — 消息队列
- Workers AI — 边缘推理
- Durable Objects — 有状态协调
部署策略:Static vs SSR vs Hybrid
Cloudflare Pages 支持三种部署模式,适合不同场景:
# 纯静态站点
# 所有页面在构建时生成
# astro.config.mjs
export default defineConfig({
adapter: cloudflare() // output: 'static'
});
# 优势:
# - 全球 CDN 缓存,速度最快
# - 零冷启动
# - 免费层无需额外配额
#
# 适合:博客、文档站、营销页面安全特性
Cloudflare Pages 继承了 Cloudflare 全套安全能力:
- DDoS 防护:自动检测并缓解 L3/L4/L7 DDoS 攻击,免费层也可用。
- WAF(Web 应用防火墙):托管规则集覆盖 OWASP Top 10、常见漏洞。
- SSL/TLS 终止:自动提供泛域名证书,支持 HTTP/2 和 HTTP/3。
- Bot 管理:通过机器学习识别并拦截恶意爬虫。
- API Shield:使用 mTLS 和 Schema Validation 保护 API 端点。
- 速率限制:基于每个用户的请求频率控制,防止滥用。
定价分析
| 功能 / 特性 | 免费 | 付费 ($20/月) | Business ($200/月) |
|---|---|---|---|
| 月均请求量 | 500,000 | 5,000,000 | 20,000,000 |
| 带宽 | 无限 | 无限 | 无限 |
| 构建并发 | 1 | 1 | 10 |
| 构建分钟/月 | 500 | 5,000 | 6,000 |
| Functions 请求 | 100,000/天 | 1,000,000/天 | 5,000,000/天 |
| Functions CPU 时间 | 10ms/请求 | 50ms/请求 | 定制 |
| KV 存储 | 1 GB | 5 GB | 定制 |
| D1 数据库 | 500 MB | 10 GB | 定制 |
| R2 存储 | 10 GB | 1TB | 定制 |
| 预览部署 | |||
| 分支部署 | |||
| SLA | 无 | 99.9% | 99.99% |
对于大部分个人项目和小型站点,免费层完全足够:
- 本博客的月均请求量约为 2000-5000 次,远低于 500,000 的免费额度。
- 每天 100,000 次 Functions 调用对于个人 API 来说绰绰有余。
- 无限带宽意味着即使突然获得大量流量,也不会产生额外费用。
- 500 分钟/月的构建时间足够数十次部署。
何时需要升级?
- 团队协作需要多个预览部署和分支部署
- 需要 SLA 保证的商业站点
- Functions 需要超过 10ms 的 CPU 时间(复杂计算)
- 需要大量 KV 或 D1 存储
框架支持
Cloudflare Pages 对主流前端框架提供了原生支持:
官方适配器,支持 Static/SSR/Hybrid
含 ISR、Middleware、App Router
包含 SSR、Hybrid、Nitro 引擎
官方适配器,含 Form Actions
含 SSR、Actions、Loader
含 Resumable 流式渲染
构建后输出纯静态文件
构建后输出纯静态文件
构建后输出纯静态文件
构建后输出纯静态文件
构建后输出纯静态文件
构建后输出纯静态文件
实际案例:本站的 Cloudflare 架构
本站(jwzhu.top)使用 Cloudflare Pages 部署,采用了以下技术组合:
| 层级 | 技术 | 用途 |
|---|---|---|
| DNS | Cloudflare DNS | 域名解析与流量路由 |
| 托管 | Pages | 静态站点部署与全球加速 |
| 安全 | WAF | 请求过滤与攻击防护 |
| 证书 | SSL/TLS | 自动 HTTPS 证书管理 |
| 缓存 | Cache | 静态资源缓存优化 |
| 分析 | Web Analytics | 隐私友好的站点统计 |
总结
Cloudflare Pages 是目前性价比最高的全栈 Web 部署平台之一,特别适合:
- 静态内容站点:利用全球边缘网络实现极速加载
- Jamstack 架构:结合 Pages Functions 实现前后端分离
- 个人项目:免费层慷慨、无带宽限制、自动 HTTPS
- 企业应用:通过付费计划获得 SLA、高级安全功能
与 Astro(本系列上篇介绍)搭配使用更加强大——Astro 的岛屿架构消除不必要的 JS,Cloudflare 的边缘网络消除不必要的延迟。
推荐阅读
- Cloudflare Pages 官方文档 — 完整指南和 API
- Pages Functions 入门 — 快速开始边缘函数
- Workers 运行时文档 — 运行时 API 参考
- Cloudflare 全球网络 — 网络基础设施
- Cloudflare 定价页 — 各层级功能对比
- Workers 价格计算器 — 成本估算工具
- Cloudflare 开发者社区 — 讨论和帮助
- Cloudflare GitHub — 开源项目和 SDK
- Astro + Cloudflare 集成指南 — 本站采用的技术组合