一个简洁高效的 jsDelivr 镜像站,同时支持 Vercel Edge Functions 和 Cloudflare Workers 双平台部署。
- 双平台支持:同时兼容 Vercel 和 Cloudflare Workers,按需选择部署平台
- 安全防护:支持仓库/站点黑白名单、文件类型和大小限制
- 性能优化:智能缓存、自动压缩、完整 CORS 支持
- GitHub 大文件:突破 jsDelivr 限制,支持最大 100MB 的 GitHub 文件下载
- 回退机制:jsDelivr 不可用时自动回退到 GitHub Raw / npm Registry
- 防刷保护:路径验证、上游错误缓存、IP 限流三重防护,避免无效请求打上游被封禁
- 名单管理:通过 GitHub Issue 自动处理黑白名单变更申请
- 简易配置:集中配置,Fork 即用
将原始 jsDelivr 链接中的 cdn.jsdelivr.net 替换为你的镜像站域名即可:
- https://cdn.jsdelivr.net/npm/jquery@3.6.4/dist/jquery.min.js
+ https://your-domain.vercel.app/npm/jquery@3.6.4/dist/jquery.min.js| 类型 | 路径格式 | 示例 |
|---|---|---|
| npm 包 | /npm/包名@版本/路径 |
/npm/jquery@3.6.4/dist/jquery.min.js |
| GitHub 仓库 | /gh/用户/仓库@分支/路径 |
/gh/nmgliangwei/jsd@main/README.md |
| GitHub Releases | /gh-release/用户/仓库/标签/文件名 |
/gh-release/vercel/vercel/v1.0.0/vercel.tgz |
- Fork 本仓库
- 编辑 config.js(参考 config.js.example)
- 点击部署:
- Fork 本仓库
- 编辑 config.js(参考 config.js.example)
- 点击部署:
或手动部署:
npm install -g wrangler
wrangler deploy使用自己的服务器,参考 nginx.conf 进行配置。
注意: Nginx 为纯反向代理模式,以下功能不可用:
功能 Vercel / CF Workers Nginx 仓库/站点黑白名单 ✅ ❌ 文件类型过滤 ✅ ❌ GitHub Raw / npm Registry 回退 ✅ ❌ GitHub Releases 下载 ( /gh-release/)✅ ❌ 配置查询 API ( /api/config)✅ ❌ 来源站点 (Referer) 控制 ✅ ❌ 动态文件大小限制 ✅ ✅ 防刷保护 (路径验证/错误缓存/限流) ✅ ❌
所有配置集中在 config.js 中,部署前请参考 config.js.example 进行修改:
| 配置项 | 说明 | 默认值 |
|---|---|---|
MAX_FILE_SIZE |
文件大小限制 (MB),0 为不限 | 5 |
CACHE_MAX_AGE |
缓存时间 (秒) | 86400 (24h) |
EXTENSIONS_MODE |
文件扩展名模式:blacklist / whitelist / none |
whitelist |
GITHUB_REPOS_MODE |
GitHub 仓库模式:blacklist / whitelist / none |
blacklist |
NPM_PACKAGES_MODE |
npm 包模式:blacklist / whitelist / none |
none |
SITES_MODE |
站点访问控制:blacklist / whitelist / none |
whitelist |
ERROR_CACHE_TTL |
上游 4xx 错误缓存时间 (秒),0 为不缓存 | 60 |
RATE_LIMIT_WINDOW |
限流时间窗口 (秒) | 60 |
RATE_LIMIT_MAX_REQUESTS |
窗口内每 IP 最大请求数,0 为不限制 | 0 |
为防止无效请求大量打到上游服务器导致 IP 被封禁,本项目内置三重防护:
| 层级 | 机制 | 说明 |
|---|---|---|
| 第1层 | 路径验证 | 拦截隐藏文件(/.env、/.git/)和攻击探测路径(/wp-admin、/phpmyadmin 等),直接返回 404 |
| 第2层 | 错误缓存 | 上游返回 4xx 的路径缓存 ERROR_CACHE_TTL 秒,期间重复请求不再打上游;回退成功则不缓存 |
| 第3层 | IP 限流 | 每个 IP 在 RATE_LIMIT_WINDOW 秒内最多 RATE_LIMIT_MAX_REQUESTS 次请求,超出返回 429 |
jsd/
├── api/ # Vercel Edge Functions
│ ├── proxy.js # 代理核心逻辑
│ └── config.js # 配置查询 API
├── css/ # 页面样式
├── config.js # 站点配置(部署前需修改)
├── index.html # 首页
├── worker.js # Cloudflare Workers 入口
├── vercel.json # Vercel 部署配置
├── wrangler.jsonc # Cloudflare Workers 部署配置
└── nginx.conf # Nginx 反代配置参考
MIT License © 2026 nmgliangwei