nginx搭建jsdelivr鏡像站過程詳解

前言

​最近 jsdelivr 可謂國內站長圈的頭條常客,這不,又雙叒叕(yòu shuāng ruò zhuó)打不開瞭。

如何解決這個問題?最簡單的方法當然是使用別人建立的jsd鏡像站,但是穩定性和可靠性就隻能看鏡像站長的心情瞭吧。自己動手豐衣足食,還是自己搞個鏡像吧。

創建 jsdelivr 鏡像站

首先,你需要有一臺安裝瞭 nginx 的服務器。推薦使用騰訊雲輕量服務器的Matomo鏡像,其中集成瞭最新穩定版 nginx、php、mariadb、Matomo 等服務端軟件。

把下面的 nginx 配置保存為 jsdelivr.conf,然後上傳到你的 nginx 站點配置目錄中, 一般為 /etc/nginx/include 或者 /etc/nginx/http.d。

使用上面提到的 Matomo 鏡像,請上傳到 /usr/local/lighthouse/softwares/nginx/conf/include 目錄

  • 使用寶塔鏡像,可以替換下其生成的站點配置
server {
    listen 80;
    listen 443 ssl http2;
    # 請更改為你的證書路徑
    ssl_certificate certs/default.cer;
    ssl_certificate_key certs/default.key;
    # 請更改為你的鏡像域名
    server_name jsd.rehiy.com;
    location / {
        proxy_pass https://cdn.jsdelivr.net;
        proxy_set_header Host $proxy_host;
        proxy_set_header Accept-Encoding '';
        proxy_ssl_server_name on;
        proxy_ssl_name $proxy_host;
        proxy_redirect / /;
        # Proxy Cache
        proxy_cache jsdelivr;
        proxy_cache_lock on;
        proxy_cache_lock_timeout 15s;
        proxy_cache_use_stale updating;
        proxy_cache_background_update on;
        proxy_cache_key $host$request_uri;
        proxy_cache_valid 200 301 302 30d;
        proxy_cache_valid 500 501 502 503 15s;
        proxy_cache_valid any 5m;
        # Replace Domain
        sub_filter_once off;
        sub_filter_types application/javascript application/json text/xml text/css;
        sub_filter '$proxy_host' '$host';
    }
}
# 緩存路徑請根據需要更改
proxy_cache_path /var/tmp/nginx/jsdelivr levels=1:2 use_temp_path=off keys_zone=jsdelivr:300m inactive=30d max_size=30g;

使用 jsdelivr 鏡像站

在你的站點源碼中批量替換 cdn.jsdelivr.net 為 jsd.rehiy.com 即可使用自己的jsd鏡像瞭。

當然,也可以把下面的代碼插入到你的站點 nginx 配置中,不修改站點源碼替換為自己的鏡像站。

sub_filter_once  off;
sub_filter_types application/javascript application/json text/xml text/css;
sub_filter 'cdn.jsdelivr.net'  'jsd.rehiy.com';

以上就是nginx搭建jsdelivr鏡像站過程詳解的詳細內容,更多關於nginx搭建jsdelivr鏡像站的資料請關註WalkonNet其它相關文章!

推薦閱讀: