国内访问加速:Cloudflare SaaS + Worker

Cloudflare Pages 在国内访问极慢?用 SaaS Custom Hostname + Worker 回源方案绕过限制。


问题

Cloudflare Pages 的 IP 在中国大陆被严重限速/阻断,导致访问极慢或无法访问。

解决方案:SaaS Custom Hostname + Worker 回源

核心思路:用一个托管在 Cloudflare 的域名(如 proxy.xyz)作为回源域名,通过 Worker 代理请求到 Pages。

步骤 1:准备回源域名

购买一个便宜域名(如 proxy.xyz),添加到 Cloudflare 并使用 Cloudflare DNS。

步骤 2:创建 Worker

在回源域名的 Cloudflare 账户下创建 Worker,代码:

export default {
  async fetch(request) {
    const url = new URL(request.url);
    url.hostname = "<your-project>.pages.dev"; // 你的 Pages 域名
    const newRequest = new Request(url.toString(), {
      method: request.method,
      headers: request.headers,
      body: request.body,
    });
    return fetch(newRequest);
  }
};

步骤 3:配置 Worker 路由

添加路由:

  • proxy.xyz/*
  • example.cn/*
  • www.example.cn/*

步骤 4:配置 SaaS Custom Hostname

  1. 在回源域名 zone → SSL/TLSCustom Hostnames
  2. 添加 example.cnwww.example.cn
  3. 会给出两条 TXT 验证记录

步骤 5:DNS 配置

将博客域名从 Cloudflare DNS 切换到其他 DNS 服务商(如阿里云 DNS),因为 SaaS 要求目标域名不在同一 Cloudflare 账户下管理。

在 DNS 服务商添加:

  • TXT 记录(用于验证 Custom Hostname)
  • CNAME example.cnproxy.xyz

步骤 6:等待 SSL 证书签发

Custom Hostname 验证通过后,Cloudflare 会自动签发 SSL 证书,整个过程约 5-30 分钟。

效果

中国大陆用户访问 example.cn → DNS 解析到 proxy.xyz(Cloudflare 有中国大陆友好的 IP) → Worker 代理到 <your-project>.pages.dev → 返回内容。

进一步优化:可将 CNAME 从 proxy.xyz 改为 cdn.anycast.eu.org(Cloudflare 优选 IP)以获得更快的国内访问速度。


这是系列文章的第二篇: