jsDelivr | 免费加速图片等静态资源

jsDelivr | 免费加速图片等静态资源

本文同步载于我的个人独立博客
jsDelivr | 免费加速图片等网站静态资源 | ChrAlpha 的幻想乡chralpha.com图标

前言

微博开始防盗链;各路小众图床晚上基本慢,还有挂掉的风险;大厂图床呢,又是要备案,要实名什么的,还有各种限制,可能还贵。

但是,由于一些众所周知的原因,GitHub 在大陆的访问速度一直不是很理想,如果你也像我一样将博客,图床等放在 GitHub 托管的话,很可能会有同学投诉访问速度,特别是初次打开的时候,速度着实堪忧。那有没有什么低成本的方案,来加速我们的网站打开速度呢?当然是有的。


CDN 简介

内容分发网络(英语:Content Delivery Network或Content Distribution Network,缩写:CDN)是指一种透过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、影片、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。
—— Wikipedia

简而言之就是让服务器距离大陆较远的 GitHub ,将托管在那里的静态资源缓存到一个近一点的服务器,从而加快访问。

看了这样的解释你应该能够理解,CDN 虽然能缓解互联压力,可也是要耗费一定的资源的,从而市面上的 CDN 大多是收费的。Cloudflare 虽然有免费 CDN ,可是国内节点致开放给专业版用户使用,价格偏高,而海外的节点又类似负优化,可能还会降低速度。


jsDelivr

jsDelivr是一款公共免费 CDN ,调用多家 CDN 保证全球服务质量、拥有多层缓存和灾后保障 SLA 100 。也是为数不多的有 ICP 备案,提供许多中国节点的海外 CDN 服务商。

有搜索引擎,支持一键复制文件 URL 和标签,支持分发 NPM、GitHub、WordPress SVN 的文件

基础使用

可能看起来,官方的使用方法十分复杂,但其实就一句话:把仓库链接的域名替换成 jsDelivr 的域名。

如托管在 GitHub 的仓库链接都是 https://github.com/username/repo/branch/file 的形式,而我们就可以将前面的 github.com 改成 jsDelivr 提供加速 GitHub 仓库的域名 cdn.jsdelivr.net/gh

嗯,兴冲冲配置一发,发现什么都没有?其实还是有一点点小差别的。比如分支那里,jsDelivr 默认要直接在仓库名后面 @ ,所以真正其实是 https://cdn.jsdelivr.net/gh/username/repo@branch/file 的形式。当然,如果你放在仓库的默认分支,还可以直接将 branch 这个关键字直接删了,变成 https://cdn.jsdelivr.net/gh/username/repo/file 一样能获取到!

另外,如果是一些比较稳定的文件,后面不会频繁地改动,还可以发布成一个版本,然后在 repo@version 就可以引用对应的版本。

加速图床

如果你还记得笔者之前写的 PicGo + GitHub 搭建免费图床 的话,不难发现 jsDelivr 也是能加速这个图床(本质不还是一个 GitHub 仓库嘛)的。我们只需要在 GitHub 图床设置 中将链接设置为 https://cdn.jsdelivr.net/gh/username/repo 即可!前提是你上传到默认分支。



尾巴

这么好的东西,还是有一点限制的。比如单个文件最大不能超过 20M ,但是不限制流量。这 20M 你甚至能来加速一个小视频……

其实还可以加速博客的主题配置,js/css 文件,图标,头像等,从而加速博客的访问速度,比如我的博客在加上 CDN 后访问速度一度从 2s 左右降低到 0.8s ,体验自然是上去了。

编辑于 04-11