插件窝 干货文章 nginx如何搭建jsdelivr镜像站

nginx如何搭建jsdelivr镜像站

jsDelivr Nginx 镜像 sudo 213    来源:    2025-04-21

搭建jsDelivr镜像站指南

jsDelivr是一个流行的开源CDN服务,主要用于加速JavaScript库、CSS框架等前端资源的加载。以下是搭建jsDelivr镜像站的详细步骤:

1. 准备工作

系统要求

  • Linux服务器(推荐Ubuntu/CentOS)
  • Nginx (最新稳定版)
  • 足够的存储空间(jsDelivr资源库较大)
  • 良好的网络连接

2. 安装Nginx

# Ubuntu/Debian
sudo apt update
sudo apt install nginx

# CentOS/RHEL
sudo yum install epel-release
sudo yum install nginx

3. 配置镜像站

3.1 创建存储目录

sudo mkdir -p /var/www/jsdelivr
sudo chown -R www-data:www-data /var/www/jsdelivr

3.2 配置Nginx

编辑Nginx配置文件(通常在/etc/nginx/sites-available//etc/nginx/conf.d/):

server {
    listen 80;
    server_name your-mirror-domain.com;  # 替换为你的域名

    root /var/www/jsdelivr;
    index index.html;

    # 启用gzip压缩
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    # 缓存设置
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|woff|ttf|svg|eot)$ {
        expires 365d;
        add_header Cache-Control "public, no-transform";
    }

    # 代理设置(可选,可以直接同步资源而不使用代理)
    location / {
        proxy_pass https://cdn.jsdelivr.net;
        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_cache_valid 200 302 24h;
        proxy_cache_valid 404 1m;
    }
}

3.3 启用配置

sudo ln -s /etc/nginx/sites-available/jsdelivr /etc/nginx/sites-enabled/
sudo nginx -t  # 测试配置
sudo systemctl restart nginx

4. 资源同步方案

方案1:使用rsync同步(推荐)

# 创建同步脚本
sudo nano /usr/local/bin/sync_jsdelivr.sh

脚本内容:

#!/bin/bash
rsync -az --delete --exclude='.git' rsync://rsync.jsdelivr.net/ /var/www/jsdelivr/

设置定时任务(每天同步):

sudo chmod +x /usr/local/bin/sync_jsdelivr.sh
(crontab -l ; echo "0 3 * * * /usr/local/bin/sync_jsdelivr.sh") | crontab -

方案2:使用wget镜像(适用于小型镜像)

wget -mkEpnp https://cdn.jsdelivr.net/

5. 高级配置(可选)

5.1 启用HTTPS

使用Let's Encrypt免费证书:

# 安装Certbot
sudo apt install certbot python3-certbot-nginx

# 获取证书
sudo certbot --nginx -d your-mirror-domain.com

5.2 负载均衡

如果有多个镜像节点,可以配置负载均衡:

upstream jsdelivr_mirrors {
    server mirror1.example.com;
    server mirror2.example.com;
    server mirror3.example.com;
}

server {
    listen 80;
    server_name cdn.yourdomain.com;

    location / {
        proxy_pass http://jsdelivr_mirrors;
    }
}

6. 验证镜像站

访问你的镜像站URL,测试几个常用资源,例如: - http://your-mirror-domain.com/npm/jquery@3.6.0/dist/jquery.min.js - http://your-mirror-domain.com/gh/twbs/bootstrap@5.1.3/dist/css/bootstrap.min.css

注意事项

  1. 存储空间:jsDelivr资源库非常大,确保有足够的存储空间(至少100GB以上)
  2. 带宽:镜像站会消耗大量带宽,确保你的服务器有足够的带宽配额
  3. 更新频率:建议每天同步一次以获取最新资源
  4. 合法性:确保遵守jsDelivr的使用条款和各个开源项目的许可证

通过以上步骤,你可以成功搭建一个jsDelivr镜像站,为你的用户提供更快的资源加载速度。