项目的过去、当下和未来
初心
自从开始搭建博客并自己折腾主题,我就开始格外在意博客的访问速度。有什么能够比“你网站的速度越来越快了”更让人高兴呢?
在这之前,因为一张未 Lazyload 的图片导致完全加载需要七八秒我都并不在意;现在,TTI/FCP 等 Lighthouse 评估指标没优化到 1 秒以内我都不满意。
在速度优化中,CDN 显得格外重要。在尝试了 JsDelivr、CDNJS 等国外 CDN 后,我发现速度并不理想;国内的一众 CDN 中,支持的库数量多的屈指可数。于是我做出了一个大胆的选择:自己搭建 CDN!
所以,在你选择使用清北 CDN 前,请务必了解:本项目最初仅供个人及团队使用,现在也只是我们团队的推荐使用列表中的其中一个。如果你只是需要 CDNJS 中的项目文件并且主要访客在国内,推荐使用字节跳动运营的 ByteDance CDN。由于 StaticFile 已经不再由七牛云提供 CDN,不再列入推荐列表中。
发展
搭建 CDN 这样耗费人力物力巨大的工作很难一个人完成。在建立清北科技前,很多项目都只完成了顶层设计;有了团队化运营,很多优秀项目顺利落地,其中一个就是清北 CDN。
最早的方案是使用某平台的对象存储,指定回源站点后,访问存储桶中不存在的文件会自动从源站拉取并存储至桶内,配上该平台的默认加速域名,接入中国大陆 CDN,有缓存的访问速度能达到全国三网拨测稳定在 0.8s 左右。
后来,该平台的 CDN 增加了 HTTPS 请求数计费,根据风险考虑,我们将所有 CDN 和存储桶业务从该平台迁出,暂时使用源服务器提供服务。虽然源服务器在香港,线路对中国大陆较友好,但是无防御且只有单机,遭遇临时维护、被攻击等突发状况时容易出现灾难性的服务故障。
现在,我们的源站采用集群化部署,分发节点也进行了容灾热备,本项目已经从测试阶段正式进入运营阶段。
虽然清北 CDN 的源站并没有使用集群的全部节点,但是集群的每一个节点随时可以作为替补源站。这要归功于我们从2022年8月开始研究的集群架构。我们不能承诺自研的高可用集群方案能比得上企业级架构,起码能保证 N+3 并且可用性较高,不至于出现明显可感知的故障。
当下
清北 CDN 包含我和我们团队需要的一切,包括 博客/官网 等网站的图片和其他静态文件、CDNJS 库、GitHub 资源、Google 静态资源 等内容的加速服务。
目前 CDN 已进入稳定运营阶段,开放给所有人使用。鉴于稳定提供 CDN 服务的需要,可能会对大量请求、疑似恶意请求的 IP、HTTP Referer 进行记录或加入黑名单,如果你遇到此情况并且认为这是误判,可以在本文档页面顶部或底部找到 联系方式,通过邮件或 GitHub Issues/Discussions 联系我们,将域名加入白名单或从黑名单移除。
此外,由于一些服务并不属于公益 CDN 服务范畴,并且有被不可抗力干扰或被盗刷的风险,因此仅赞助商可以使用,未来可能会逐步开放。
未来
清北 CDN 即将接入更多节点、开放更多加速服务。