Cloudflare Pages to EdgeOne Makers Banner

从 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。

它的核心能力可以拆成三块:

  1. 静态站点托管 — 对标 Cloudflare Pages,支持 Hexo、Vue、React、Astro 等主流框架,连上 GitHub 仓库就能自动构建部署
  2. 边缘函数(Makers Functions) — 对标 Cloudflare Workers,在边缘节点上跑 JS,无需管理服务器
  3. 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 项目 → SettingsBuild configuration,把这两个值记下来:

  • Build command(构建命令)— 比如 npm run build
  • Build output directory(输出目录)— 比如 distbuild.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 用两个文本文件:

Bash
# _redirects
/old-path   /new-path   301
/api/*      /api/proxy  200

Bash
# _headers
/*
  X-Frame-Options: DENY
  X-Content-Type-Options: nosniff
/assets/*
  Cache-Control: public, max-age=31536000

Makers 改用 edgeone.json,放在项目根目录:

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/ 目录,文件即路由:

Javascript
// functions/api/hello.js — Cloudflare
export function onRequest(context) {
  return new Response("Hello, Cloudflare!");
}

Makers Functions 完全兼容这套写法,onRequestcontext 对象基本一致:

Javascript
// functions/api/hello.js — Makers(不需要改代码)
export function onRequest(context) {
  return new Response("Hello, EdgeOne!");
}

如果你的函数依赖了 Cloudflare 特有的 API(比如 cachesenv.KV),需要对照 Makers 的文档做适配。Makers Functions 支持 Cloud FunctionsEdge 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 检查响应头:

Bash
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 高级特性的,花一个下午迁过来也是值得的。

毕竟对于网站来说,快就是正义

最后修改: 2026年7月6日

作者

评论

发表评论

您的邮箱地址不会被公开。