目前服务已恢复正常

2021年12月20日17点30分左右,jsd已恢复正常工作。根据管理员发布的内容可以得知,造成此次故障的原因是该域名ICP备案失效,导致网宿停止对该域名提供服务。管理员已将该域名解析至我国大陆以外的地区以确保服务正常,访问速度可能受限。

前言

jsDelivr(以下简称jsd)是一个用于开源文件加速的免费 CDN,且有我国的ICP备案,和国内厂商合作,同样也为国内用户提供了高速无限制的CDN加速服务。

2021年12月20日,有很多人反馈jsd崩了,经过测试,许多博客引用的jsd资源确实无法正确加载。起初我以为是因为国内许多人滥用jsd的服务(如搭建图床甚至存放视频)导致国内的访问被ban,但是看了控制台的报错可以发现,出现这种情况是因SSL证书错误所致:

jsdelivr国内节点证书错误

影响

由于我的静态资源(如图片和大部分js文件)都是放在自己服务器的,所以一开始我认为此事对我的影响并没多大。当我强制刷新浏览器缓存之后发现影响其实挺大的,主要在以下几个方面:

  1. 图片无法加载;早期博文的少量图片是通过jsd加速的,所以这部分图片无法正常加载。当然有些以jsd做“图床”加速的影响可能就大很多;
  2. js无法加载;众多开源项目都使用了jsd加速js文件,比如评论系统Twikoo,播放器Aplayer以及博客主题中引用的部分资源,比如懒加载、分享组件等。其中,懒加载js无法正常加载,即便图片资源是放在本地也会导致博客图片无法显示,解决方法之一是暂时关闭懒加载功能。
  3. 其它静态资源无法加载;其它的诸如一部分效果css文件、字体文件等也无法正常加载。

所以如果你的博客使用了开源主题,或者你自身一定程度上也在借助jsd加速某些文件,那么这一次的事故对你肯定是有很大影响的。

解决办法

尚不清楚这次的事故会持续多长时间,目前可以解决的方法有两个:

  1. 将部分或者全部使用jsd加速的文件迁移到自己的服务器或者对象存储上,通过其它CDN节点加速。优点是稳定,缺点是麻烦,且无法及时获取某些开源项目最新的js文件。
  2. cdn.jsdelivr.net批量替换成cdn.jsdelivr.cn,后者(非官方域名)暂时可以直接访问,但是引入到博客中貌似会403,所以相当于无效。
  3. 静待官方处理。

最后

截至本文发布,本站的大多数引用自jsd的文件已经迁移到第三方CDN上。

jsd的加速效果肯定是有目共睹的。比如用它加速一个五六兆的字体文件,速度比用云盾要快个十来倍。jsd此次故障可能只是单纯的SSL证书配置的问题,但是也有人说问了网宿,这个域名被禁止提供服务了。无论原因是什么,仍然呼吁各位要合法、合理地使用jsd提供的服务,不要让它成为下一个vercel。