ccruiの博客

ccruiの博客

使用国内 CDN 分流加速 CloudFlare Workers

28
2025-03-29

前言

Cloudflare Workers 以其强大的边缘计算能力和全球 CDN 网络,为开发者提供了便捷的 Serverless 服务。然而,由于网络环境的特殊性,直接访问 Cloudflare 在中国大陆的速度可能并不理想。为了提升中国大陆用户的访问体验,我们可以利用国内 CDN (内容分发网络) 对 Cloudflare Workers 进行加速分流,实现更快速、更稳定的访问。

本文将介绍如何使用国内 CDN 为 Cloudflare Workers 站点加速,提升中国大陆用户的访问速度。 本教程提供通用的配置流程,你可以根据你选择的国内 CDN 服务商进行具体操作。

准备工作

在开始之前,请确保你已完成以下准备工作:

  1. 拥有 Cloudflare 域名托管:

    • 你需要在 Cloudflare 上托管至少一个域名,例如 example.com
  2. 创建并部署 Cloudflare Worker 或 Pages 项目:

    • 你需要创建一个 Cloudflare Worker 或者 Pages 项目,并将其绑定到一个子域名,例如 a.example.com
    • 这个子域名将作为你的源站。
  3. 拥有国内 CDN 服务账号:

    • 你需要注册并开通国内 CDN 服务,例如 阿里云 CDN、腾讯云 CDN、又拍云 CDN 等。
    • 本教程提供通用的配置流程,具体操作请参考你所选 CDN 服务商的文档。

创建 CDN 加速

以下是创建 CDN 加速的通用步骤,你需要根据你使用的 CDN 控制台进行操作。

  1. 登录 CDN 控制台:

    • 访问你选择的国内 CDN 服务商的控制台并登录你的账号。
  2. 添加域名:

    • 在 CDN 控制台中,找到 域名管理添加域名 相关的入口。
    • 输入你要加速的子域名,例如 a.example.com注意:这里填写的是你最终希望用户访问的加速域名,而不是 Cloudflare Worker 的默认域名。
  3. 配置源站信息:

    • 源站信息 配置中,选择 源站类型域名
    • 源站地址 中,填写你的 Cloudflare Worker 或 Pages 的默认分配域名,例如 xxx.pages.devxxx.workers.dev
    • 回源协议 选择 HTTPS
    • 端口 保持默认 443 (HTTPS)。
  4. 配置 SSL 证书:

    • 确保你的加速域名配置了 SSL 证书,并开启 HTTPS 强制跳转
  5. 其他 CDN 配置 (可选但建议):

    • 缓存配置: 合理配置 CDN 缓存策略。
    • 区域加速: 选择 中国大陆加速 区域。
  6. 完成添加:

    • 完成域名添加后,CDN 会分配给你一个 CDN 加速域名 (CNAME)请记录下这个 CNAME 值,下一步 DNS 解析会用到。

域名绑定与 DNS 解析

这一步的关键是将你的域名 a.example.com 指向 CDN 加速地址 (针对中国大陆用户),并保持境外用户直接访问 Cloudflare Worker。 我们将使用 阿里云 DNS 进行域名解析,实现 境内境外分流

  1. 登录阿里云域名控制台:

    • 访问 阿里云域名控制台 并登录你的阿里云账号。
    • 找到你想要配置的域名 example.com,点击 域名解析
  2. 添加 DNS 解析记录:

    • 确保使用 阿里云 DNS: 本教程假设你的域名解析服务商是 阿里云 DNS。 如果你的域名解析在其他地方,请将域名解析迁移到阿里云 DNS,或者参考你当前 DNS 服务商的线路类型解析功能进行配置。

    • 添加 A 记录 (默认线路 - 中国大陆 CDN 加速):

      • 点击 添加记录 按钮。
      • 记录类型: 选择 A - 将域名指向 IPv4 地址
      • 主机记录: 填写 a (或你想要加速的子域名,例如 cdn)
      • 解析线路: 选择 默认 (阿里云 DNS 的 “默认” 线路通常指中国大陆地区)
      • 记录值: 填写 你在 CDN 控制台中获得的 CDN 加速域名 (CNAME 值),例如 xxxx.aliyundomain.com
      • TTL: 建议设置为 3600 秒 (1小时) 或更短,例如 600 秒 (10分钟),方便 DNS 生效。
    • 添加 CNAME 记录 (境外线路 - Cloudflare Worker 源站):

      • 再次点击 添加记录 按钮。
      • 记录类型: 选择 CNAME - 将域名指向另一个域名
      • 主机记录: 填写 a (与上面 A 记录相同)
      • 解析线路: 选择 境外 (阿里云 DNS 的 “境外” 线路指中国大陆以外的地区)
      • 记录值: 填写 你的 Cloudflare Worker 或 Pages 绑定的子域名,例如 a.example.comyour-worker-name.workers.dev (推荐使用你绑定的子域名 a.example.com,保持一致性)。 注意:这里填写的是 Cloudflare Worker 的域名,而不是 CDN 的 CNAME 值。
      • TTL: 建议设置为 3600 秒 (1小时) 或更短,例如 600 秒 (10分钟)。
  3. 检查解析设置:

    • 添加完成后,你会在阿里云 DNS 解析列表中看到两条关于 a.example.com (或你设置的子域名) 的记录,一条是 A 记录 (默认线路) 指向 CDN CNAME,另一条是 CNAME 记录 (境外线路) 指向 Cloudflare Worker 域名。
  4. 等待 DNS 生效并验证:

    • DNS 解析生效需要一定时间,通常几分钟到几小时不等。
    • 你可以使用 pingdig 命令,分别在 国内和国外 的网络环境下测试 a.example.com 的解析结果,验证是否生效:
      • 国内网络环境: ping a.example.com 应该返回阿里云 CDN 节点的 IP 地址 (可以通过 ping CDN CNAME 值 来对比确认)。
      • 国外网络环境: ping a.example.com 应该返回 Cloudflare Worker 的 IP 地址 (可以通过 ping 你的 Cloudflare Worker 域名 来对比确认)。
    • 也可以使用在线 DNS 查询工具,例如 站长工具 DNS 查询,分别选择 国内国外 节点进行查询,查看解析结果是否符合预期。

原理分析

这个加速方案的核心原理是 DNS 智能解析CDN 分发网络

  • DNS 智能解析: 根据用户的地理位置返回不同的解析结果,实现分线路访问。
  • CDN 分发网络: 国内 CDN 在中国大陆部署节点,加速访问速度。
  • Cloudflare Worker 作为源站: 境外用户和国内 CDN 回源都访问 Cloudflare Worker。

67e7b7d6d3b4b.png