为hexo博客图片添加CDN加速

本文最后更新于:2020年8月24日 中午

前言

众所周知,Github是全球最大的社交编程及代码托管网站,但是由于他是国外的产品,所以导致我们访问会比较慢,有时甚至可能出现无法访问的情况。

本博客就是部署与GitHub上的(剩下了花钱买空间以及备案等杂事),但是也因此访问速度是个很大的诟病,尤其是一些技术博客中由于图片质量导致体积较大,加载慢影响阅读。


这是为图片添加CDN之前的测速详情

avatar

开始

本次使用的是 jsDelivr ,一个免费的cdn,支持npm,GitHub,wordpress。
操作十分简单,只需要利用他提供的网站引用自己要调用的GitHub资源即可。
avatar
一般我hexo写md时,是将图片放到source\img目录下,然后利用

1
![img](/img/9.png)

这样进行调用的就是我最上面的那个测速图片。
而我们要做的操作就是将路径地址改为网址。

1
![img](https://cdn.jsdelivr.net/gh/liuyunfz/liuyunfz.github.io/img/9.png)

avatar
这样就实现了CDN对图片进行加速。

结果

avatar
这就是我添加CDN后的测速结果,效果很明显,国内对博客图片访问的速度有了明显的提升。
如果你想要通过对站内所有网页进行加速,则可以考虑一些通用的静态或全站加速的CDN,如果你已经备案了的话可以考虑加速乐(不过不支持HTTPS),或者其他阿里云腾讯云的产品。

后记

原理

CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。(内容来自百度百科)

按照我的理解大概就是CDN服务器先提交把数据给缓存到CDN服务器那里,当你向他索取时,它就把它缓存的数据直接转送给你。举个形象点的例子,你想参加跑步比赛但是跑不过别人,你请来了小明,他帮你拿到了第一名,然后把奖牌给你了。(#大雾)

这个CDN可能是实时访问转递的,就是当你要访问数据时他才去GitHub上当下数据,然后再传过来。猜想是源于我朋友写的一个p站爬虫,由于总所周知的原因,p站无法直接进行访问,所以他在国外服务器上加了一个php,后面传递要访问的网址,然后他会自动返回那个网址的内容。相当于充当了中介桥梁。

其他

本期博客启发于CSDN的一篇文章:免费CDN:jsDelivr+Github 使用方法

其实相比于用jsdelivr加速不如用七牛云储存图片外链,直接通过外链访问图片。速度应该能更快上一点,而且我印象中好像用户有免费的20G流量配额,但是手持身份证实名劝退。有兴趣的也可以自行了解一下:七牛云