Skip to content

nmgliangwei/jsd

Repository files navigation

jsDelivr 镜像站

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

一个简洁高效的 jsDelivr 镜像站,同时支持 Vercel Edge FunctionsCloudflare 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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors