
从 Cloudflare Pages 到 EdgeOne Makers:一份中国开发者的迁移手记
如果你是一个前端开发者,或者自己捣鼓个人站点的站长,Cloudflare Pages 这个名字你大概率不陌生。
Git 一推,自动构建,全球 CDN 分发,还能写边缘函数——一套组合拳下来,静态站点托管这件事被它简化到了极致。
但如果你面向的是中国用户,事情就没那么美好了。
Cloudflare 的免费套餐在国内的访问速度,懂的都懂——快的时候还行,晚高峰直接给你表演一个「转圈三分钟,白屏两分半」。
于是腾讯云出手了。
EdgeOne Makers(以前叫 EdgeOne Pages),从名字就能看出它的野心:对标 Cloudflare Pages + Workers,但根儿扎在腾讯云遍布全球的 2800+ 边缘节点上——其中大量的国内节点,是 Cloudflare 无论如何都绕不过去的短板。
我用了一段时间,最大的感受就三个字:真·快。
但这篇文章不只想说「它很快」,我更想聊聊:如果你已经在 Cloudflare Pages 上跑得好好的,为什么要迁、怎么迁、迁完有啥坑。
EdgeOne Makers 是什么
先正名一下。
你搜「EdgeOne Pages」也能找到一堆资料,但腾讯云现在把它正式命名为 EdgeOne Makers(控制台里就叫 Makers)。为了避免混淆,下文统一叫 Makers。
它的核心能力可以拆成三块:
- 静态站点托管 — 对标 Cloudflare Pages,支持 Hexo、Vue、React、Astro 等主流框架,连上 GitHub 仓库就能自动构建部署
- 边缘函数(Makers Functions) — 对标 Cloudflare Workers,在边缘节点上跑 JS,无需管理服务器
- KV 存储 — 对标 Cloudflare KV,边缘键值存储,目前还在 Beta 阶段,需要申请
国内站:
edgeone.cloud.tencent.com/pages
国际站:edgeone.ai/zh/products/pages
一个小细节:域名不需要备案就能用。证书自动签发,三小时预览域名拿来就能访问——这对手头没有备案域名的开发者来说非常友好。
和 Cloudflare Pages 掰手腕
直接上对比表:
| 特性 | Cloudflare Pages | EdgeOne Makers |
|---|---|---|
| 国内访问速度 | 慢,晚高峰丢包率高 | 快,境内节点多 |
| 免费流量 | 不限量 | 50GB/月 |
| 免费构建次数 | 500次/月 | 不限 |
| 边缘函数 | Workers(成熟) | Makers Functions(公测中) |
| KV 存储 | 直接开通 | 需申请(Beta) |
| 自定义域名 | 支持,证书自动 | 支持,证书自动 |
| 无需备案 | 是(但国内访问慢) | 是 |
| 冷启动(境内) | 200-500ms | <100ms |
| CLI 工具 | Wrangler | EdgeOne CLI |
这里面最有杀伤力的一项是国内访问速度。
有人做过实测对比:北京电信从 4.2s 降到 0.8s,上海联通从 5.1s 降到 0.9s,广州移动从 4.8s 降到 0.7s——不是说 Cloudflare 不行,而是 Cloudflare 在中国大陆没有节点,流量得绕道,物理距离是绕不过去的。
唯一的例外是对海外用户的覆盖。 Cloudflare 全球 330+ 城市的节点密度仍然碾压 Makers,如果你的用户一半在国内一半在海外,可以 Cloudflare 兜一层,Makers 做国内加速——双 CDN 也不是不行。
迁移实战:从 Cloudflare Pages 到 Makers
官方其实给了一份迁移文档,但写得有点简略。我把实际操作走一遍,你照着来就行。
第 1 步:抄作业
登录 Cloudflare Dashboard,进你的 Pages 项目 → Settings → Build configuration,把这两个值记下来:
- Build command(构建命令)— 比如
npm run build - Build output directory(输出目录)— 比如
dist、build、.next
与此同时,检查项目根目录下有没有 _redirects 和 _headers 文件——这俩是 Cloudflare Pages 用来配置重定向和响应头的,迁移的时候要转换成 Makers 的格式。
第 2 步:在 Makers 上创建项目
打开 console.cloud.tencent.com/edgeone/pages,点击创建项目,选你的 GitHub 仓库(也支持 Gitee 和 Coding),填入刚才记下的构建命令和输出目录,然后点部署。
Makers 会自动执行构建、把产物推到边缘网络,几分钟后你就能拿到一个 your-project.edgeone.site 的预览域名。
第 3 步:迁移 _redirects 和 _headers
这是最容易踩坑的一步。
Cloudflare Pages 用两个文本文件:
# _redirects
/old-path /new-path 301
/api/* /api/proxy 200
# _headers
/*
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
/assets/*
Cache-Control: public, max-age=31536000
Makers 改用 edgeone.json,放在项目根目录:
{
"redirects": [
{
"source": "/old-path",
"destination": "/new-path",
"statusCode": 301
}
],
"rewrites": [
{
"source": "/api/*",
"destination": "/api/proxy"
}
],
"headers": [
{
"source": "/*",
"headers": [
{ "key": "X-Frame-Options", "value": "DENY" },
{ "key": "X-Content-Type-Options", "value": "nosniff" }
]
},
{
"source": "/assets/*",
"headers": [
{ "key": "Cache-Control", "value": "public, max-age=31536000" }
]
}
]
}
注意 _redirects 里的代理重写(状态码 200)在 Makers 里要放到 rewrites 字段,不是 redirects。
第 4 步:迁移边缘函数
Cloudflare Pages Functions 用 functions/ 目录,文件即路由:
// functions/api/hello.js — Cloudflare
export function onRequest(context) {
return new Response("Hello, Cloudflare!");
}
Makers Functions 完全兼容这套写法,onRequest 和 context 对象基本一致:
// functions/api/hello.js — Makers(不需要改代码)
export function onRequest(context) {
return new Response("Hello, EdgeOne!");
}
如果你的函数依赖了 Cloudflare 特有的 API(比如 caches、env.KV),需要对照 Makers 的文档做适配。Makers Functions 支持 Cloud Functions 和 Edge Functions 两种模式,context 对象的属性略有差异,按需选。
第 5 步:切域名
在 Makers 项目设置里添加你的自定义域名,拿到 CNAME 记录值。
然后去你的 DNS 服务商那里——如果你域名还挂在 Cloudflare 的 DNS 上也没关系,不需要迁 DNS,只需把原来的 CNAME 记录指向更新一下,从 Cloudflare Pages 的 CNAME 改成 Makers 提供的 CNAME 即可。
注意: 如果你原来开了 Cloudflare 的橙色云朵(Proxy 模式),记得关掉,改回 DNS Only,否则 Makers 的 IP 会被 Cloudflare 再代理一层,反而多一跳。
第 6 步:验证
DNS 生效后,用 curl 检查响应头:
curl -I https://yourdomain.com
确认返回头里有 Makers 的标记字段。也可以跑一下 Lighthouse 或 PageSpeed,对比迁移前后的性能变化——按社区实测,国内 TTFB 从 0.9s 降到 0.3s 是很常见的改善幅度。
几个不得不说的坑
实话实说,Makers 还在公测期,不是一切完美。
KV 存储还在 Beta,需要单独申请。 如果你重度依赖 Cloudflare KV,迁移之前先确认一下 Makers KV 的可用性和配额。现阶段我建议把 KV 的读取逻辑包一层抽象,方便以后切回来。
海外节点覆盖不如 Cloudflare。 如果你同时服务大量海外用户,Makers 不太能完全替代 Cloudflare,考虑双 CDN 方案:Makers 做国内加速,Cloudflare 兜海外。
控制台入口藏得有点深。 第一次找 Makers 的控制台,我在腾讯云产品列表里翻了半天。记住捷径:console.cloud.tencent.com/edgeone/pages。
社区和文档还在建设中。 遇到问题的话,扫描控制台右上角的「开发者沟通群」二维码进群问,回复速度还行。
总结
Cloudflare Pages 仍然是全球范围内最好的静态站点托管方案之一——功能成熟、生态完善、社区庞大。
但如果你面向的是中文互联网用户,Makers 带来的国内访问速度提升是实实在在的,迁移成本低到几乎没有(函数代码兼容、Git 工作流不变),带来的体验提升却非常显著——更快的加载速度意味着更低的跳出率、更好的 SEO 排名。
我个人建议:新项目可以直接上 Makers,老项目不那么依赖 KV/Workers 高级特性的,花一个下午迁过来也是值得的。
毕竟对于网站来说,快就是正义。
评论