Cloudflare Pages 终极指南:你所需要知道的一切
介绍
Cloudflare Pages 是 Cloudflare 公司推出的一款现代、高性能的 JAMstack 应用托管平台。它专为前端开发者设计,提供了一个从代码到全球部署的无缝体验,集成了静态网站托管和动态无服务器功能(通过 Cloudflare Workers 实现)。无论你是构建个人博客、作品集网站,还是复杂的全栈应用,Cloudflare Pages 都提供了一个强大、安全且极具成本效益的解决方案。
本文将作为你的终极指南,详细介绍 Cloudflare Pages 的所有方面,从核心优势、定价、限制,到具体使用场景、部署流程,再到高级功能和竞品对比,帮助你全面掌握这个强大的工具。
核心优势
Cloudflare Pages 之所以备受青睐,主要得益于以下几点核心优势:
- 极其慷慨的免费套餐:对于个人开发者和小型项目而言,Cloudflare Pages 的免费套餐极具吸引力。它提供无限个站点、无限带宽、无限请求和无限席位(团队成员),每月还有 500 次免费构建。这足以满足绝大多数非商业项目的需求。
- 全球顶级的 CDN 网络:你的网站将被部署到 Cloudflare 遍布全球 100 多个国家/地区的边缘网络上。这意味着无论用户身在何处,都能享受到极低的延迟和闪电般的加载速度。
- 无缝的 Git 集成 (CI/CD):与 GitHub 和 GitLab 的完美集成,实现了真正的持续集成/持续部署。你只需将代码推送到指定分支,Cloudflare Pages 就会自动拉取、构建和部署你的应用,整个过程无需人工干预。
- 强大的无服务器功能 (Pages Functions):通过与 Cloudflare Workers 的集成,你可以在静态网站中轻松添加动态后端逻辑。无论是处理 API 请求、用户认证还是表单提交,都可以在边缘节点上快速执行,免费套餐每日提供 100,000 次函数调用。
- 自动化的安全保障:所有部署在 Pages 上的网站都会自动获得免费的 SSL/TLS 证书,启用 HTTPS 加密。同时,你还能享受到 Cloudflare 提供的基础 DDoS 防护和其他安全功能。
- 便捷的预览部署:每次提交代码或发起 Pull Request (PR) 时,Pages 都会自动生成一个唯一的预览 URL。这使得团队协作和代码审查变得异常简单,你可以在合并到生产环境前充分测试所有变更。
- 内置构建优化与分析:平台内置了对多种现代前端框架(如 React, Vue, Next.js, Svelte 等)的构建支持,并提供构建缓存以加快部署速度。此外,还附带了隐私优先的免费 Web Analytics,帮助你了解网站流量。
定价与限制
定价方案
Cloudflare Pages 的定价模型非常简洁,主要分为免费和付费计划:
-
免费计划 (Free Plan):
- 构建次数: 每月 500 次
- 部署: 无限
- 带宽: 无限
- 请求: 无限
- 自定义域名: 每个项目 100 个
- Pages Functions: 计入 Workers 免费额度,即每日 100,000 次请求。
-
付费计划 (Pro/Business Plan):
- 付费计划主要面向需要更高级功能的企业用户,例如更高级别的支持、更多的构建次数等。
- 如果 Pages Functions 的用量超过免费额度,可以升级到 Workers 的付费计划(起价 $5/月,包含 1,000 万次请求),这对于需要处理大量动态请求的应用来说,成本效益非常高。
关键点: 对于静态资源(HTML, CSS, JS, 图片等),无论是免费还是付费计划,请求和带宽都是完全免费且无限制的。费用仅在大量使用 Pages Functions 时产生。
主要限制
为了保证平台稳定和服务质量,Cloudflare Pages 设定了一些资源限制:
- 文件数量: 每个项目最多 20,000 个文件。
- 文件大小: 单个文件最大 25 MiB。对于大文件,建议使用 Cloudflare R2 存储。
- 构建时间: 每次构建的超时时间为 20 分钟。
- 自定义头部 (
_headers): 最多 100 条规则。 - 重定向 (
_redirects): 最多 2,000 个静态重定向和 100 个动态重定向。 - 项目数量: 每个账户软限制为 100 个项目。
部署你的第一个项目
将你的网站部署到 Cloudflare Pages 非常简单。下面以一个典型的静态网站为例,演示完整的部署流程。
准备工作
- 一个 Cloudflare 账户:如果还没有,可以免费注册。
- 一个 GitHub 或 GitLab 账户:并将你的网站代码托管在上面。
部署步骤
-
登录并创建项目:
- 登录 Cloudflare 仪表盘,在左侧导航栏找到并点击 Workers & Pages。
- 选择 创建应用程序 -> Pages -> 连接到 Git。
-
连接 Git 仓库:
- 授权 Cloudflare 访问你的 GitHub/GitLab 账户。
- 选择你想要部署的仓库。
-
配置构建和部署:
- 生产分支: 选择你的主分支,例如
main或master。 - 构建设置:
- 框架预设: Cloudflare 会尝试自动检测你的项目框架。你可以手动选择,例如
React,Vue,Hugo,Next.js / Static HTML等。 - 构建命令: 根据你的项目设置,例如
npm run build或yarn build。 - 构建输出目录: 构建后静态文件所在的目录,例如
dist,build或public。
- 框架预设: Cloudflare 会尝试自动检测你的项目框架。你可以手动选择,例如
- 环境变量 (可选): 你可以在这里为构建过程或 Pages Functions 添加环境变量。
- 生产分支: 选择你的主分支,例如
-
保存并部署:
- 点击 保存并部署。Cloudflare Pages 会立即开始第一次构建。
- 你可以实时查看构建日志。构建完成后,你的网站将部署到一个
*.pages.dev的子域名上。
-
添加自定义域名 (可选):
- 在项目的主页,进入 自定义域 标签页。
- 输入你自己的域名,并按照指引更新你的 DNS 记录(如果你的域名 DNS 也由 Cloudflare 管理,这个过程是全自动的)。Cloudflare 会自动为你处理 SSL 证书。
高级功能
除了基础的托管服务,Cloudflare Pages 还提供了一系列强大的高级功能。
1. Pages Functions
这是 Pages 最核心的动态能力。你只需在项目根目录下创建一个 functions 文件夹,里面的每个 JavaScript/TypeScript 文件都会成为一个 API 端点。
示例:一个简单的 API
在项目根目录创建 functions/hello.js:
javascript
export function onRequest(context) {
return new Response("Hello from the edge!");
}
部署后,你就可以通过 https://your-site.pages.dev/hello 访问到这个 API。
你还可以通过 _middleware.js 文件在特定路径下添加中间件,处理认证、日志、重定向等逻辑。
2. 重定向和自定义头部
通过在构建输出目录中创建特殊文件,可以轻松管理重定向和 HTTP 头部:
_redirects文件: 用于设置 URL 重定向。
# 语法: <source> <destination> [status]
/home /
/blog /news 301
/store/* /shop/:splat_headers文件: 用于添加或修改 HTTP 响应头。
# 语法: <path>
# <header-name>: <header-value>
/
X-Frame-Options: DENY
/assets/*
Cache-Control: max-age=2592000
3. 即时回滚
如果某次部署出现了问题,你可以在项目仪表盘的部署记录中,一键将生产环境回滚到任何一个之前的成功版本,整个过程是瞬时的。
4. 与其他 Cloudflare 产品集成
Pages 可以与 Cloudflare 生态中的其他产品无缝集成,构建功能强大的全栈应用:
- Cloudflare R2: 用于存储大量非结构化数据(如大文件、图片、视频),没有出口带宽费用。
- Cloudflare D1: 一个原生的无服务器 SQL 数据库,用于持久化存储。
- Cloudflare Zaraz: 将第三方脚本(如分析工具、广告)转移到边缘执行,提升网站性能和安全性。
- Cloudflare Access: 为你的预览部署或整个站点添加零信任访问控制,保护内部应用。
竞品对比:Pages vs. Vercel vs. Netlify
| 特性 | Cloudflare Pages | Vercel | Netlify |
|---|---|---|---|
| 核心优势 | 全球性能、极高性价比、安全集成 | 最佳 Next.js 支持、优秀的开发者体验 | 成熟的生态系统、功能全面 |
| 免费带宽 | 无限 | 100 GB/月 | 100 GB/月 |
| 免费构建 | 500 次/月 | – | 300 分钟/月 |
| Serverless | Cloudflare Workers (性能极高) | Edge Functions, Serverless Functions | Netlify Functions (基于 AWS Lambda) |
| CDN 网络 | 顶级,范围最广 | 快速,针对动态内容优化 | 快速,成熟稳定 |
| 成本效益 | 极高 | 较高 | 较高 |
总结:
* 如果你追求极致的性能和性价比,尤其是当你的网站流量巨大时,Cloudflare Pages 是无与伦比的选择。
* 如果你是 Next.js 的重度用户,并希望获得最佳的开发和部署体验,Vercel 是首选。
* 如果你需要一个功能全面、生态成熟的平台,并且不太在意轻微的性能差异或成本,Netlify 是一个非常可靠的选择。
结论
Cloudflare Pages 凭借其强大的全球网络、慷慨的免费套餐和与 Cloudflare 生态的深度集成,已经成为现代 Web 开发中不可忽视的一股力量。它不仅极大地简化了静态网站和 JAMstack 应用的部署与管理,还通过 Pages Functions 提供了构建全栈应用的能力。
无论你是个人开发者还是大型团队,Cloudflare Pages 都提供了一个值得信赖、高性能且极具扩展性的平台。现在就开始,将你的下一个项目部署到 Cloudflare Pages,亲身体验边缘计算带来的速度与激情吧!