Skip to content
nmgliangweiPublic

About

jsDelivr镜像站,支持github文件加速

Resources

Stars

4 stars

Watchers

1 watching

Forks

Repository files navigation

jsDelivr 镜像站

License GitHub Workflow Status GitHub stars GitHub forks GitHub issues Deploy with Vercel Deploy to Cloudflare

一个简洁高效的 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

部署方式

方式一:Vercel 部署(推荐)

  1. Fork 本仓库
  2. 编辑 config.js(参考 config.js.example)
  3. 点击部署:Deploy with Vercel

方式二:Cloudflare Workers 部署

  1. Fork 本仓库
  2. 编辑 config.js(参考 config.js.example)
  3. 点击部署:Deploy to Cloudflare

或手动部署:

npm install -g wrangler
wrangler deploy

方式三:Nginx 反向代理

使用自己的服务器,参考 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

About

jsDelivr镜像站,支持github文件加速

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages