使用CloudflarePages为GitHub仓库中的文件提供免费CDN服务

使用 Cloudflare Pages 为 GitHub 仓库中的文件提供免费 CDN 服务

初衷

众所周知github是个免费的云存储仓库,可以当图床可以存文件,免费账号单仓库容量1G,仓库数量理论上可以无限白嫖,真是大善人。国内网络访问github经常抽风偶尔失联,github仓库当外链国内访问困难,于是乎我想到了另一个活菩萨,没错,她就是cloudflare!!!
内容分发网络(CDN)是提升网站性能和用户体验的重要工具。Cloudflare 提供的免费 Pages 服务可以轻松为 GitHub 仓库中的文件添加外链 CDN。本文将详细介绍如何通过 Cloudflare Pages 配置 CDN 服务,让您的 GitHub 文件加载更快、更可靠。


步骤 1:准备工作

在开始之前,您需要完成以下准备:

拥有一个域名

  • 注册一个域名(例如 example.com)。
  • 将该域名的 DNS 托管到 Cloudflare(后续步骤会详细配置)。

确认 GitHub 文件外链

  • 获取您想要加速的 GitHub 文件原始链接,例如:

    1
    https://raw.githubusercontent.com/user/repo/main/image.jpg

步骤 2:配置 Cloudflare

2.1 添加域名到 Cloudflare

  1. 登录 Cloudflare 控制台
  2. 点击「添加站点」,输入您的域名(例如 example.com)。
  3. 根据提示,将域名的 DNS 服务器改为 Cloudflare 提供的地址。此操作需在您的域名注册商处完成。

2.2 创建反向代理(Worker)

Cloudflare Worker 可以将您的自定义域名请求转发到 GitHub 的原始链接。以下是具体步骤:

创建 Worker

  1. 进入 Cloudflare 控制台,选择 Workers & Pages创建应用程序创建 Worker

  2. 在代码编辑器中粘贴以下 JavaScript 脚本:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    async function handleRequest(request) {
    const allowedPath = '/your-github-username/your-repo-name/'; // 只允许代理此路径下的文件
    const requestPath = new URL(request.url).pathname;

    // 检查路径是否合法
    if (!requestPath.startsWith(allowedPath)) {
    return new Response('Forbidden: Path not allowed', { status: 403 });
    }

    const targetUrl = `https://raw.githubusercontent.com${requestPath}`;
    return fetch(targetUrl, { headers: { 'User-Agent': 'Mozilla/5.0' } });
    }

    注意:将 your-github-usernameyour-repo-name 替换为您的 GitHub 用户名和仓库名。

部署并绑定域名

  1. 点击「部署」保存 Worker。

  2. 在 Worker 的「触发器」选项卡中,绑定自定义路由,例如:

    1
    cdn.example.com/*

步骤 3:配置 DNS 解析

  1. 进入 Cloudflare 的 DNS 管理页面
  2. 添加一条 CNAME 记录:
    • 名称cdn(或您喜欢的子域名,如 static
    • 目标:您的 Worker 域名(例如 your-worker.your-account.workers.dev
    • 代理状态:启用(显示橙色云图标)

步骤 4:测试访问

配置完成后,您可以通过以下方式验证 CDN 是否生效:

原始 GitHub 文件链接

1
https://raw.githubusercontent.com/user/repo/main/image.jpg

通过 Cloudflare CDN 的链接

1
https://cdn.example.com/user/repo/main/image.jpg

访问自定义 CDN 链接,确认文件是否成功加载。


总结

通过以上步骤,您可以使用 Cloudflare Pages 为 GitHub 仓库中的文件提供免费的 CDN 服务。这种方法不仅提升了文件访问速度,还利用了 Cloudflare 的全球网络和安全功能。无论您是初学者还是经验丰富的开发者,都可以轻松实现这一功能。开始尝试吧!