菜单导航

技术文档
JsDelivr CDN加速访问服务部署指南
技术文档

JsDelivr CDN加速访问服务部署指南

前言:这个服务本意是提供一些开发文件及图床的jsd代理加速,避免国内使用相关服务时无法访问或访问过慢,现提供两种高效使用该服务的部署方式,如果你在使用中有问题,也可以留言反馈

服务介绍

主要把常见的 GitHub / npm / unpkg 资源链接解析为 jsDelivr CDN 资源,并提供多种输出方式(直连/代理/跳转):

  • 带有安全管理体系,一键识别拉黑恶意攻击扫描IP,可自行设置解封时间
  • 日志查看,包含登录删除等操作也会被记录,可设置保留日志的时间(自动清理)
  • 流量统计,可显示近 30 天流量汇总(字节/请求数)与 Top使用列表
  • 页面设置,带有公告设置及网站标题、icon的设置,公告支持md、txt、html写法

在线使用

访问:https://jsd.cdn.noisework.cn

功能与特性

  • 支持链接识别与转换
    • GitHub:raw.githubusercontent.com / github.com/.../blob/... / github.com/.../raw/...
    • npm:unpkg.com
    • jsDelivr CDN:cdn.jsdelivr.net/gh/... / cdn.jsdelivr.net/npm/...(可直接作为上游)
    • 简写
      • gh:owner/repo@ref/path/to/file.ext
      • npm:pkg@ver/path/to/file.ext(支持作用域包:npm:@scope/pkg@ver/path/to/file.ext
  • 输出方式
    • /gh/<owner>/<repo>@<ref>/<path>:同路径直连(服务端代理 jsDelivr 并返回内容;推荐图床/跨域)
    • /npm/<pkg>@<ver>/<path>:同路径直连(服务端代理 jsDelivr 并返回内容;推荐图床/跨域)
    • /cdn?url=...:代理输出(同样返回内容,适合"只能用 query 参数"的场景)
    • /r?url=...:Redirect(302 跳转到 jsDelivr)
    • /u?url=...:仅解析,返回 JSON(首页/前端页面使用)
  • 安全策略(Proxy)
    • 仅允许代理 jsDelivr 官方域名:cdn.jsdelivr.netfastly.jsdelivr.net
    • 默认开启 Access-Control-Allow-Origin: *,适合图片/静态资源跨域引用
  • 缓存策略(Proxy)
    • 若 URL ref 识别为"稳定版本"(例如 commit sha 或 semver),会返回长期缓存
    • 若为 main/master/latest 等不稳定 ref,默认短缓存

1779527661941

一、Docker 部署

docker pull noise233/jsd-noise:latest

推荐按下面这样跑(首次会自动创建并初始化 /app/data/app.db;以后复用旧数据直接沿用该目录即可):

docker run -d \
  --name jsd-noise \
  -p 5011:5011 \
  -v "$(pwd)/data:/app/data" \
  -e PORT=5011 \
  -e DB_PATH=/app/data/app.db \
  -e TZ=Asia/Shanghai \
  noise233/jsd-noise:latest

默认首次注册的用户为管理员,如果你有旧数据如在/opt/jsd/文件夹中,则使用 -v /opt/jsd:/app/data \即可

你也可以一键部署在zeabur或fly.io等无服务器平台

1779527616400

二、Nginx

适用于服务器轻量化使用,可直接在宝塔面板一键修改网站配置文件,将下面代码复制后修改必要的文件路径即可,已经配置了缓存时间及文件大小限制,可自行修改

网站首页文件:蓝奏云盘

功能同上述,但没有后台

配置文件代码:

server {
    # ===== 监听端口(同时支持 HTTP/HTTPS 和 IPv4/IPv6) =====
    listen 80;
    listen 443 ssl http2;
    listen [::]:80;
    listen [::]:443 ssl http2;

    # ===== 域名(请替换为你自己的站点域名) =====
    server_name cdn.example.com www.cdn.example.com;  # 替换为你的真实域名

    # ===== 网站根目录(用于本机资源,如 /custom_413.html) =====
    # 如果你的项目不在默认宝塔目录,请一并修改这里
    root /www/wwwroot/cdn.example.com;  # 替换为你的实际站点根目录

    # ===== 宝塔扩展配置目录(如伪静态、重写规则等) =====
    # 路径中的域名也需要同步替换
    include /www/server/panel/vhost/nginx/extension/cdn.example.com/*.conf;

    #CERT-APPLY-CHECK--START
    # 用于 SSL 证书申请时的文件验证相关配置 —— 请勿删除
    include /www/server/panel/vhost/nginx/well-known/cdn.example.com.conf;
    #CERT-APPLY-CHECK--END

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;

    #HTTP_TO_HTTPS_START
    # 自动将 HTTP 跳转到 HTTPS(.well-known 除外,用于证书申请验证)
    set $isRedcert 1;
    if ($server_port != 443) {
        set $isRedcert 2;
    }
    if ( $uri ~ /\.well-known/ ) {
        set $isRedcert 1;
    }
    if ($isRedcert != 1) {
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END

    # ===== SSL 证书与参数 =====
    # 证书路径同样需要替换为你的域名对应路径
    ssl_certificate     /www/server/panel/vhost/cert/cdn.example.com/fullchain.pem;
    ssl_certificate_key /www/server/panel/vhost/cert/cdn.example.com/privkey.pem;

    # 【安全建议】
    # 当前配置包含 TLSv1/TLSv1.1,已属于不安全协议,建议只保留 TLSv1.2 TLSv1.3
    # 参考各类安全基线,仅启用现代 TLS 版本
    ssl_protocols TLSv1.2 TLSv1.3;  # 建议去掉 TLSv1 TLSv1.1

    # 【安全建议】
    # cipher 套件建议按 Mozilla Intermediate 规范更新,例如只保留带 ECDHE+AES-GCM/ChaCha20 的套件
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:EECDH+AES256:RSA+AES128:RSA+AES256:!MD5;
    ssl_prefer_server_ciphers on;

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # HSTS:告诉浏览器未来一年只使用 HTTPS 访问本站
    add_header Strict-Transport-Security "max-age=31536000";

    # 当客户端使用 HTTP 请求 HTTPS 端口时,Nginx 返回 497,这里跳转为 HTTPS
    error_page 497 https://$host$request_uri;

    # ===== 首页规则 =====
    location = / {
        # 如果主页是 PHP 项目,一般改为 index.php index.html
        index index.html;  # 根据实际情况调整为 index.php index.html 等
    }

    # ===== 通用请求处理:先尝试本地文件,否则走反向代理 =====
    location / {
        try_files $uri $uri/ @proxy;
    }

    # ===== 反向代理 jsdelivr CDN 的核心逻辑 =====
    location @proxy {
        # 上游:jsdelivr CDN
        proxy_pass https://cdn.jsdelivr.net;

        # 确保 SNI 匹配 jsdelivr(尤其是共享 IP / CDN 场景)
        proxy_ssl_server_name on;

        # 传递客户端真实信息给上游
        proxy_set_header Host cdn.jsdelivr.net;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;

        # 支持 WebSocket / 保持长连接
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;

        # 显示缓存命中状态(调试用,可按需注释)
        add_header X-Cache $upstream_cache_status;

        # ===== 服务端缓存配置 =====
        # 忽略上游某些控制头,让 Nginx 自己决定缓存策略
        # 说明:忽略 Cache-Control / Expires 可以让 Nginx 按自身规则缓存;
        #       忽略 Set-Cookie 是因为 jsdelivr 基本不会在静态资源上用 Cookie,
        #       但如果有敏感会话信息,需谨慎评估是否真的要忽略。
        proxy_ignore_headers Set-Cookie Cache-Control expires;

        # 使用共享内存区域 cache_one 作为缓存空间
        # 注意:需要在 http 块中提前定义 proxy_cache_path,例如:
        #   proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=cache_one:100m inactive=180d max_size=10g;
        proxy_cache cache_one;
        proxy_cache_key $host$uri$is_args$args;

        # 缓存正常响应和重定向
        proxy_cache_valid 200 304 301 302 1440m;

        # 防止大文件回源时占用过多磁盘/带宽
        proxy_max_temp_file_size 5m;

        # 拦截上游错误码,交给 error_page 处理
        proxy_intercept_errors on;

        # 自定义 413 错误页面(实体过大)
        error_page 413 /custom_413.html;

        # ===== 客户端缓存控制(浏览器端) =====
        # 对常见静态资源设置较长过期时间,减轻服务器压力
        if ($uri ~* "\.(gif|mp4|mp3|png|jpg|css|js|webp)$") {
            expires 2M;  # 浏览器缓存 2 个月
        }
    }

    # ===== 自定义 413 页面(请求体过大) =====
    # 注意:Nginx 对 413 的自定义错误页有特殊限制,
    #       需要确保所在 location 的 client_max_body_size 大于实际限制,
    #       否则 error_page 可能不会生效,仍会返回默认 413 页面。
    location = /custom_413.html {
        root /www/wwwroot/cdn.example.com;  # 与 server.root 保持一致,或单独指定
        internal;          # 只允许内部重定向访问
        default_type text/html;
        return 200 '文件超过5MB,不予返回!';
    }
}

使用时需要做的几件事:

  1. 把所有 cdn.example.com / www.cdn.example.com 替换为你自己的域名。
  2. /www/wwwroot/cdn.example.com 和证书路径替换为你实际的路径。
  3. http 块中添加 proxy_cache_path 定义(示例里是 cache_one),例如:
   proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=cache_one:100m inactive=180d max_size=10g;

如果你不想使用我的首页文件而自建的是 PHP 项目,把 index.html 改成 index.php

版权声明

本文为「Noise」原创内容或编译整理;除特别说明外,文中图片并非个人手绘,可能来源于网络、AI 生成、截图等,后期使用 PhotoMator / Procreate 进行处理,仅用于学习与交流。如涉及版权或来源标注不全,请联系处理。未经授权,禁止用于商业用途,禁止抹除水印。转载请注明出处与链接并保留本声明。

...

评论 (0)

评论功能加载中...
Noise

Noise

执迷不悟

下载链接

已识别 1 个下载源,请从下方选择对应网盘进行下载。

资源名称蓝奏云盘格式资源包最近更新2026年5月23日

推荐阅读

Cloudflare自定义安全规则配置
技术文档

Cloudflare自定义安全规则配置

Nose | 2026-05-23

前言:如果你有网站或服务配置在cloudflare,一定免不了被扫描和恶意攻击,而配置Cloudflare的自定义安全规则可避免这些问题,

进入https://dash.cloudflare.com 官网,点击安全规则,选择创建规则,选择自定义规则,然后点击编辑表达式

12
Noise导航网站MCP、Skill、搜索API使用说明
技术文档

Noise导航网站MCP、Skill、搜索API使用说明

Nose | 2026-05-14

目前公开了导航站的搜索功能相关MCP、Skill、API,下面文档以此说明,配置后你可以在任意支持的AI客户端内实现使用自然语言一键检索站内收录的地址

48
安全管理网络层封禁恶意攻击对接指南
技术文档

安全管理网络层封禁恶意攻击对接指南

Nose | 2026-04-10

本文指南如何配置网络层封禁恶意攻击,包括ipset选择、Docker部署优化、同步脚本和计划任务设置。适用于防范扫描、爬虫和外部攻击,强调安全最佳实践和注意事项。

37