Cloudflare Pages:免费档 500 次构建与 100 个自定义域的前端托管
摘要
Cloudflare Pages 是 Cloudflare 的前端托管平台,全栈应用构建完成后直接落到自有全球网络,免费档每月五百次构建,站点、席位、请求与带宽按无限量提供。
- 软件名称
- Cloudflare Pages
- 版本
- 20261016
- 开源
- 非开源
- 操作系统
- Web
- 更新时间
- 2026-10-17 16:07
前端托管的分水岭常常要等账单跑起来才出现:站点一多、流量一涨,带宽与构建次数就成了新的变量。Cloudflare Pages 把免费的边界放在另一处——站点、席位、请求与带宽先摆在一边,配额表真正盯住的是构建次数、项目数量与单个体积。
把构建与分发绑在同一张网上
Cloudflare Pages 的官方定位是一个无服务器平台,让团队把应用快速构建、协作、测试并部署上线;官方产品页把它的一句话摘要写成「全栈应用构建完成后直接落到 Cloudflare 全球网络」。分发这一环由 Cloudflare 自有的网络承担,产品页给出的说法是这套服务跑在为互联网二成流量提供支撑的系统之上,企业级的可靠性、安全性与性能属于默认配置,HTTP/3、QUIC、图片压缩与 SSL 都在开箱即用的范围内。上线路径有三条:接入代码托管平台、用 Direct Upload 直接上传构建产物,或者用命令行工具从本地推送。静态站与全栈应用共用同一套部署模型,Pages Functions 负责把服务端代码跑起来。

构建配置交给预设
接入代码托管平台之后,每次推送都会触发一次构建与部署。官方为常见框架准备了一份预设清单,React、Gatsby、Next.js 的静态导出、Nuxt、Qwik、Remix、Svelte、SvelteKit、Vue、Angular、Docusaurus、Hugo、Jekyll、Eleventy、VitePress 与 Zola 都在列表里,每条预设自带构建命令与产物目录。构建成功与否由退出码决定:命令返回非零即标记为失败,返回零则视为成功并上传产物,标准错误里写了日志也不影响这个结论。根目录默认取仓库根,单体仓库里放多个项目时才需要单独指定。产物目录由构建命令生成,多数框架统一落在行业惯用的 public 目录下。
如果不走代码托管这条路,Direct Upload 允许把已经构建好的产物整包推上去,适合构建流程放在自有平台或本地机器的场景。命令行方式一次上传一个文件夹,官方给出的文件上限是两万个;面板拖拽方式接受压缩包或单个文件夹,文件上限一千;两者在单文件体积上都以 25 MiB 封顶。函数目录需要随着命令行一起上传,一个独立的 worker 脚本文件则两种方式都能识别。
配额表真正盯住的东西
免费档的边界由官方配额表逐条写明。构建并发是很好懂的一项:免费档同一时间只跑一个构建,专业档五个,商业档二十个;并发按账户计数,单次构建运行超过二十分钟会被中止。每月构建次数依次是五百次、五千次与两万次。自定义域按项目计算,免费档一百个、专业档两百五十个、商业档五百个。文件数量上,免费档单站点能放到两万个,更高档位可以提到十万个,需要在项目设置里把对应的环境变量开好。单个资源文件的体积上限是 25 MiB。预览部署与协作用户两项都按无限量提供,账户层面的项目数上限为一百个,官方注明这项额度按惯例不做上调。
请求层交给两个小文件
静态资源的响应头与跳转规则由两个纯文本文件接管,它们本身不会作为资源发布出去,只是在构建产物目录里被平台解析。响应头文件的规则条数上限是一百条,每一行连空格带名称带取值合计两千个字符封顶;一次请求命中多条规则时,会把各条规则声明的响应头一并继承下来。跳转文件每行只写一条声明,顺序会影响结果——同一条来源路径出现多份声明时,位置靠前的那一条先生效,静态规则也应当排在动态规则前面。它的容量上限是两千条静态跳转加一百条动态跳转,合计两千一百条,单条声明一千个字符封顶。两个文件同时命中一次请求时,跳转先于响应头执行。
预览、回滚与部署钩子
每次在代码仓库上开一个新的合并请求,平台就会为这次改动生成一条独立预览链接,内容随分支上的后续提交持续更新。每新建一条分支,就会在项目子域前面拿到一串随机生成的哈希,形成一条新的预览地址;平台还会为分支名建一个别名,让别名跟着该分支的提交往前滚。生产域名与挂在项目上的自定义域都不受预览部署影响。为了避免这些临时副本影响搜索结果,官方默认给每一条预览部署加上不被搜索引擎收录的标记。回滚的对象是任意一次构建成功的生产部署,回滚之后依然可以再切到更新的版本,而预览部署不作为回滚目标。域名接入分两种情况:根域名需要先把站点接入 Cloudflare 并改好域名服务器,由平台代为创建解析记录;子域只要在解析服务商那里补一条 CNAME 记录,指向项目自己的子域即可。
部署钩子把触发的起点从代码提交挪到了别处:每条钩子有自己的唯一地址,收到一次 HTTP POST 就启动一次构建,配置时只填钩子名称与要构建的分支两个参数。官方提醒钩子只要地址被调用就能触发,因此应当当成机密信息保管,怀疑被人使用时删掉重建一条。这套机制适合内容由外部内容管理系统维护、又希望站点跟着内容一起更新的场景,也可以串进自定义的持续集成流程,或者按固定时间表定时重建。
Cloudflare Pages 把前端托管拆成三件事:构建在预设里完成,分发落到自有的全球网络,配额则写在一张公开的表上。它值得留意的地方在于免费档的敞开项足够多——站点、席位、请求与带宽先摆在一边,真正需要盘算的是每月构建次数、项目数量与单个体积。对流量起伏大、带宽开销又难预估的静态站与全栈应用来说,这套组合把成本的不确定性压得很低。