基于 Cloudflare Workers 的高性能 GitHub 文件加速代理
High-Performance GitHub Acceleration Proxy on Cloudflare Workers
|
无需 KV 存储,一键即用 |
多层缓存策略 |
支持 github.com 等 |
|
断点续传、CORS 支持 |
重试机制、超时控制 |
中英双语界面 |
- 🌓 智能主题 - 自动跟随系统浅色/深色主题,支持手动切换
- 🌍 自动语言检测 - 根据浏览器语言自动选择中文/英文界面
- 🔄 实时主题同步 - 系统主题变化时自动切换,无需刷新
- 📋 域名自动替换 - 示例 URL 自动显示当前访问域名,即用即改
- 🎯 状态记忆 - 使用 sessionStorage 保存用户偏好,刷新后恢复系统设置
系统根据文件路径自动选择最优缓存策略:
| 路径类型 | 示例 | Edge 缓存 | 浏览器缓存 | 版本控制 |
|---|---|---|---|---|
| 动态内容 | /latest/, /main/, /nightly/ |
1 小时 | 5 分钟 | ETag |
| 固定版本 | /v1.0/, /tags/, /releases/download/v1.0/ |
30 天 | 1 天 | 日期 |
| 普通路径 | 其他所有路径 | 1 天 | 1 小时 | ETag |
💡 30 秒快速上手
- 点击上方 Deploy to Cloudflare Workers 按钮
- 登录 Cloudflare 并授权 GitHub 仓库访问
- 点击 Deploy 按钮,等待 1-2 分钟
- 获取 Worker URL:
https://your-worker.workers.dev- 将 GitHub URL 的域名替换为你的 Worker 域名即可使用!
点击下方按钮,自动部署到 Cloudflare Workers:
📖 点击展开详细步骤
前置要求:
- Cloudflare 账号(免费注册)
- (建议)托管到 Cloudflare 的域名 - 用于绑定自定义域名,避免
*.workers.dev域名被封锁的风险
部署步骤:
-
登录 Cloudflare Dashboard
访问:https://dash.cloudflare.com/ -
创建 Worker
- 点击左侧菜单
Workers & Pages - 点击
Create Application - 选择
Create Worker - 输入 Worker 名称(例如:
github-proxy) - 点击
Deploy
- 点击左侧菜单
-
部署代码
- 点击
Edit Code按钮 - 删除默认代码
- 复制
worker.js的完整内容 - 粘贴到编辑器
- 点击右上角
Save and Deploy
- 点击
-
绑定自定义域名(可选)
- 在 Worker 详情页,点击
Settings→Triggers - 点击
Add Custom Domain - 输入域名(例如:
gh.example.com) - 等待 DNS 配置生效(通常 1-5 分钟)
- 在 Worker 详情页,点击
-
完成部署 ✅
- 默认 URL:
https://your-worker.workers.dev - 自定义域名:
https://gh.example.com(如已配置)
- 默认 URL:
配置 GitHub Actions 实现代码 push 后自动部署,保持 Worker 与仓库同步。
⚠️ 注意:一键部署只在首次点击时生效,后续 GitHub 代码更新不会自动同步到 Worker。如需持续维护,建议配置自动部署。
📖 配置步骤:查看 自动部署配置指南
将 GitHub URL 的域名替换为您的 Worker 域名:
# 原始 URL
https://github.com/torvalds/linux/archive/refs/tags/v6.6.tar.gz
# 加速 URL(域名路径格式)
https://your-worker.workers.dev/github.com/torvalds/linux/archive/refs/tags/v6.6.tar.gz
# 或使用完整 URL 格式(直接在代理域名后粘贴完整链接)
https://your-worker.workers.dev/https://github.com/torvalds/linux/archive/refs/tags/v6.6.tar.gz| 格式 | 说明 | 示例 |
|---|---|---|
| 📦 域名路径格式 | 去掉 https://,保留域名和路径 | proxy.dev/github.com/user/repo/... |
| 🔗 完整 URL | 直接粘贴完整 GitHub 链接 | proxy.dev/https://github.com/user/repo/... |
📥 下载 Release 文件
# 下载 Clash Meta 核心
wget https://your-worker.workers.dev/github.com/MetaCubeX/mihomo/releases/download/v1.18.0/mihomo-linux-amd64
# 下载 Node.js 源码
curl -O https://your-worker.workers.dev/github.com/nodejs/node/archive/refs/tags/v20.10.0.tar.gz📄 获取 Raw 文件
# 获取脚本文件
curl https://your-worker.workers.dev/raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
# 获取配置文件
wget https://your-worker.workers.dev/raw.githubusercontent.com/torvalds/linux/master/.gitignore📝 在脚本中使用
#!/bin/bash
# 设置镜像地址
GITHUB_PROXY="https://your-worker.workers.dev"
# 下载文件
download_file() {
local repo=$1
local tag=$2
local filename=$3
wget "${GITHUB_PROXY}/github.com/${repo}/releases/download/${tag}/${filename}"
}
# 使用示例
download_file "cli/cli" "v2.40.0" "gh_2.40.0_linux_amd64.tar.gz"🔄 Git Clone 加速
# 方法1: 使用 git config
git config --global url."https://your-worker.workers.dev/github.com/".insteadOf "https://github.com/"
git clone https://github.com/torvalds/linux.git
# 方法2: 直接替换 URL
git clone https://your-worker.workers.dev/github.com/torvalds/linux.git在 worker.js 中可自定义以下参数:
| 参数 | 默认值 | 说明 |
|---|---|---|
EDGE_CACHE_SECONDS |
2592000 (30天) |
边缘缓存 TTL |
SWR_SECONDS |
86400 (1天) |
过期后仍可用时间 |
BROWSER_CACHE_SECONDS |
3600 (1小时) |
浏览器缓存 TTL |
| 参数 | 默认值 | 说明 |
|---|---|---|
ENABLE_COMPRESSION |
true |
启用 Brotli/Gzip 压缩 |
ENABLE_EARLY_HINTS |
true |
启用 Early Hints (HTTP 103) |
MAX_RETRIES |
2 |
请求失败最大重试次数 |
RETRY_DELAY_MS |
500 |
重试间隔(毫秒) |
REQUEST_TIMEOUT_MS |
30000 |
请求超时时间(毫秒) |
|
|
|
|
Worker 会添加以下调试头:
| 响应头 | 说明 | 示例值 |
|---|---|---|
X-Cache-Status |
缓存命中状态 | HIT / MISS |
X-Cache-Strategy |
缓存策略类型 | dynamic / versioned / default |
X-Mirror-Version |
缓存版本号 | 20231223 / abc123... (ETag) |
X-GitHub-Target |
实际请求的 GitHub URL | https://github.com/... |
X-Response-Time |
响应时间 | 1234ms |
🔍 调试示例
curl -I https://your-worker.workers.dev/cli/cli/releases/download/v2.40.0/gh_2.40.0_linux_amd64.tar.gz
HTTP/2 200
x-cache-status: HIT
x-cache-strategy: versioned
x-mirror-version: 20231223
x-response-time: 45ms📌 限制说明
- 免费版每日 100,000 次请求限制
- 单文件大小限制 100MB(Cloudflare 限制)
- CPU 执行时间 50ms(免费版)/ 无限制(付费版)
💾 缓存行为
- 浏览器缓存:根据策略自动调整(5分钟 - 1天)
- 边缘缓存:根据策略自动调整(1小时 - 30天)
- 版本号:每天 UTC 00:00 自动更新
💡 使用建议
- 建议先测试小文件,确认正常后再用于大文件
- 如需频繁访问,建议绑定自定义域名
- 大量请求建议升级到 Workers Paid 计划
🗑️ 清除缓存
- Dashboard:
Caching→Configuration→Purge Cache- API:使用 Cloudflare API 按 URL 清除
- 自动:等待缓存过期或版本号更新
❌ 404 Not Found
- 检查路径格式是否正确
- 确认 GitHub 上该文件确实存在
- 查看
X-GitHub-Target头确认目标 URL
🔄 缓存未命中(X-Cache-Status: MISS)
- 首次请求必定 MISS,再次请求应为 HIT
- 检查是否为动态路径(
/latest/等) - 查看
X-Cache-Strategy确认策略类型
🐢 下载速度慢
- 检查是否使用了 Cloudflare CDN 节点
- 确认本地网络到 Cloudflare 的连接质量
- 查看
X-Response-Time分析延迟来源
查看 Releases 获取版本历史。
贡献步骤:
- Fork 本项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
本项目采用 GNU General Public License v3.0 许可证。
- Cloudflare Workers - 强大的边缘计算平台
- GitHub - 全球最大的代码托管平台
Made with ❤️ by Aethersailor