以全新的视角来评测公共 CDN

之前在 V2EX 上看到这篇「用程序猿视野看公共 CDN」,感觉写的不仅不详细,还有很多纰漏和错误。可是嘲笑别人写得不好,总得自己写篇更好的才行嘛,所以我就写了这篇对公共 CDN 的评测。

达成成就:360 奇舞团的怡红公子,还有兽兽都来留言惹(都是大佬耶~ 呜哇~)

参与评测的公共 CDN 服务商

首先,入选的公共 CDN 都必须是积极更新、积极维护的,意味着新浪、百度、又拍 JSCDN 之流是不参与评测的。

  • BootCSS 国内最著名、使用最广泛的公共 CDN 之一
  • css.loli.net 由土豪兽兽维护的公共 CDN,css.net 的船新升级版本
  • Staticfile 由七牛维护的公共 CDN 服务
  • 75CDN 由 360 的奇舞团运营的公共 CDN
  • 今日头条公共 CDN
  • jsDelivr 由 Prospect One 运营,非常快速和非常可靠的公共 CDN
  • CDNJS 非常著名的公共 CDN,国内大部分公共 CDN 都是和它维护的库同步
  • Unpkg 著名的公共 CDN,从 NPM 抓取 Package 中的文件
  • Bootstrap CDN Bootstrap 官方推荐的公共 CDN

评测角度

  • HTTPS 和 HTTP2
  • 服务商 直接关系到公共 CDN 的质量和 SLA
  • 节点数量和质量 关系到终端用户的速度

海外的公共 CDN 服务商和中国的公共 CDN 服务商的评判方法不同,中国的从 国内节点 和 海外节点 来衡量,海外的从 全球节点 和 中国节点 来衡量

  • 加载速度 从国内和海外两个部分衡量
  • 服务域名和使用的权威 DNS 决定了公共 CDN 的 SLA 和解析速度

公共 CDN 由于频繁调用,解析结果绝大部分都会被递归 DNS 缓存,解析速度受权威 DNS 影响不大;但是通过使用的权威 DNS 也可以看出公共 CDN 服务商的投入多少

  • 便捷性 是否方便开发者使用

比如是否提供 Lib 库搜索、是否支持一键复制 URL 或者标签


注意,本文不会提供类似 ping 速度或者 IP 数量这类数据,因为这些并不是衡量公共 CDN 的标准。

BootCDN

官网

  • 支持 HTTPS,支持 HTTP2
  • 京东云 CDN
  • 丰富的国内节点
  • 没有海外节点
  • 在国内速度还不错,海外的话不敢苟同
  • cdn.bootcss.com,使用 DNSPod 免费版
  • 便捷性:★★★★★

开放 API;提供搜索引擎索引;支持一键复制标签和 URL

BootCDN 是国内使用最广泛的公共 CDN。BootCDN 之前和又拍云合作。虽然又拍云与其他 CDN 相比有些亮点(WebP 和 H264 自适应、TLS1.3 等),但节点质量实在不敢恭维,海外也只有香港、新加坡、北美、荷兰四个节点(法兰克福被去掉了)。BootCDN 的官方博客还 记录了一次事故,大意是 CC 攻击使得又拍云封禁了不少 BootCDN 的 URL。

不知道是又拍不再赞助、还是服务质量不能满足需要,BootCDN 今年切换到了京东云 CDN。京东云 CDN 在国内的节点还算数量丰富、覆盖范围也比又拍云好;但是京东云没分配海外节点给 BootCDN,海外会解析到上海电信节点。

关于 BootCDN 使用 DNSPod 免费版,我个人觉得作为国内使用如此广泛的公共 CDN 用免费版的 DNSPod,毕竟不能保障 SLA;但是话说回来,公共 CDN 毕竟也是免费服务,还是别多嘴了。

毫无征兆地,中国最著名的公共 CDN 服务提供商 BootCDN 于 2018 年 10 月 1 日停止了服务。

css.loli.net

官网

  • 支持 HTTPS,支持 HTTP2
  • 国内使用阿里云 CDN,海外使用 Cloudflare(Pro Plan)
  • 非常丰富的国内节点
  • 丰富的海外节点
  • 全球速度都很好
  • *.loli.net,自建权威 DNS
  • 便捷性:★★

不支持一键复制;至于搜索,可以在 https://cdnjs.loli.net/ajax/libs/ 用 Ctrl / Coomand + F;

css.loli.net 除了同步 cdnjs 的库,还提供 Google Fonts 和 Gravatar 等服务的反代。

css.loli.net 的前身是兽兽的 css.net,后来兽兽改用 cat.net 几个子域名,直到现在的 loli.net;使用了阿里云 CDN + Cloudflare Pro Plan,全球速度都不错(虽然 Cloudflare 钱不加够是不会分配全部 150 节点的,但是 Pro 已经可以覆盖大部分地区了)。至于自建 DNS,兽兽曾透露过他们每天解析请求多达数十亿,一般的 DNS 服务商不划算。

说到便捷性,css.loli.net 只是提供加速服务,并没有提供类似搜索或者一键复制的功能,而是让开发者将现有的海外公共 CDN 的域名替换为他们的服务域名;虽然数次更换域名难免造成一些不便,但是我依然主力推荐兽兽的公共 CDN 服务。

Staticfile

官网

  • 支持 HTTPS,不一定 支持 HTTP2
  • 著名的二手 CDN 贩子七牛云 CDN,上游说不准是哪个
  • 丰富的国内节点
  • 很可能没有 海外节点
  • 国内的速度还是不错的
  • cdn.staticfile.org,DNSPod 免费版

怎么又是 DNSPod 免费版?

  • 便捷性:★★★★

有搜索引擎,支持一键复制文件 URL

和别的公共 CDN 同步 CDNJS 的 Lib 库不同,Staticfile 自己维护了一个 Lib 库,曾经断更过一年(那时候经常没法用最新版本的库),不过现在继续维护了。

Staticfile 用的 CDN 是七牛。七牛的计费系统曾是 V2EX 工单板块的常客,七牛的配置更新是用来衡量咕咕咕的单位,人们像买彩票一样看七牛会分配哪个上游 CDN,至今坊间依然在流传七牛人工向上游服务商手动提交客户的 SSL。当然我这篇文章并不是为了黑七牛,所以赶紧言归正传。七牛之前给 Staticfile 分配了网宿,所以没有 HTTP2 但是有海外节点,之后全面切换到又拍云、有了 HTTP2 但是海外只剩一个法兰克福,现在新分配了阿里云 CDN 但是没了海外节点,颇有些让人哭笑不得。

即便如此,Staticfile 还算是不错的公共库,加上 Staticfile 诞生比 BootCDN 要早,所以在国内使用也非常广泛。

75CDN

官网

  • 支持 HTTPS,支持 HTTP2,提供 SRI(开启 SRI 教程)
  • 360 自家服务同款 CDN
  • 丰富的国内节点
  • 有几个海外节点
  • 国内的速度还是不错的
  • lib.baomitu.com,360 官网同款 DNS
  • 便捷性:★★★★★

有搜索引擎,支持一键复制文件 URL 和标签

75CDN 是 360 前端团队奇舞团维护的,除了同步 CDNJS 以外,还提供 Google Fonts 本土化(不是单纯的反代)。75CDN 号称首个支持 HTTP2 和 SRI 的公共 CDN(考虑到大前提是在国内的话,还是挺正确的),除此以外还率先支持 ES Module Import,走在了各大公共 CDN 前列。 从服务质量上来看,75CDN 使用的 360 自家服务同款 CDN 和权威 DNS,速度和 SLA 肯定不会低于 BootCDN 或者 Staticfile;但是海外节点目前就香港和北美,聊胜于无。

今日头条公共 CDN

官网

  • 支持 HTTPS,不一定 支持 HTTP2
  • 著名的二手 CDN 贩子七牛云 CDN,上游说不准是哪个
  • 丰富的国内节点
  • 大量的 海外节点(s4 子域名除外)
  • 全球的速度都不错的
  • s1.pstatp.com s2.pstatp.com s3.pstatp.com s4.pstatp.com,DNSPod 免费版

怎么还是 DNSPod 免费版?

  • 便捷性:★★★★★

有搜索引擎,提供文件 URL,支持设置缓存响应头时长

说实在的,其实今日头条的公共 CDN(由母公司字节跳动的团队负责运营)本来不应该入选评测的——上游同样是 CDNJS,但是并没有定时同步了,jquery 才更新到 3.2.1,还大字写了个什么禁止非法网站调用啥的。但是之所以还要再补充关于它的说明主要是这个公共 CDN 非常有趣。 首先他不是直接给你直链,你点击文件以后跳转的链接是随机分配的,可能是受到早期前端优化中域名分片的影响、以及间接实现在多家 CDN 之间的负载均衡吧。s1 域名接的是网宿 CDN,全球版,海外除了网宿自己的节点以外还有 cdnetworks 的节点;s2 和 s3 阿里云 CDN 全球版,海外节点也很丰富的;只有 s4 域名接的是网宿国内版。除此以外还支持指定响应头缓存时长(URL 中有参数)也非常有趣——明明公共库文件都是长期不改变的,直接设置一年甚至两年的 cache-control 就行了的。 虽然这个公共库处于年久失修的状态,但是考虑到它接的 CDN 上游都挺有趣的,还是可以考虑体验一下的,但是如果要用于生产环境的话还是留个心眼比较好。

jsDelivr

官网

  • 支持 HTTPS,支持 HTTP2,提供 SRI
  • 网宿、Fastly、Stackpath、Cloudflare Business Plan
  • 非常丰富的国内节点
  • 非常丰富的海外节点
  • 全球的速度都非常优秀
  • cdn.jsdelivr.net,NS1 和 Rage4 主从 DNS
  • 便捷性:★★★★★

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

如果有人让我推荐公共 CDN,我一定会推荐 jsDelivr。通过 RUM 实时监测各地服务质量、调度多家 CDN 保障全球加载速度;拥有多层缓存和灾备保障 100 SLA。更重要的是 jsDelivr 有 ICP 备案、接入网宿,很可能是海外公共 CDN 服务中唯一提供中国节点的。

jsDelivr 支持从 NPM、GitHub Tag 和 WordPress SVN 上抓取文件并分发,大大降低了开发者使用的难度——直接发个 Release 就可以用了。jsDelivr 每个月会被调用上百亿次,服务 620+ TB 的流量,意味着如果你不是通过 jsDelivr 加载较为热门的库,那么缓存命中率是不会太理想的。

之前网宿的杭州节点遭到入侵,一干二手 CDN 都被 MITM,jsDelivr 也受到影响、不得不切走网宿,不过问题解决以后又切回来了。这也算是 jsDelivr 的一次事故吧,虽然锅得网宿背;过了一年 jsDelivr 的 GSLB 服务商 Cedexis 又出现故障、不得不暂时将全部解析至 Cloudflare。但不管怎么说,jsDelivr 总体上仍然是非常优秀、SLA 100、值得在生产环境上使用的公共 CDN。

CDNJS

官网

  • 支持 HTTPS,支持 HTTP2,提供 SRI
  • Cloudflare Enterprise Plan
  • 没有国内节点( cloudfalre.com 肯定不会备案,所以没法启用 China Access)
  • 非常丰富的海外节点
  • 国内的速度很不理想
  • 海外的速度非常优秀
  • cdnjs.cloudflare.com,Cloudflare 官网同款 DNS
  • 便捷性:★★★★

有搜索引擎,支持一键复制文件 URL 和标签

与其说 CDNJS 是世界上最广泛使用的公共 CDN 服务,或者去探讨 Cloudflare 在海外的加速效果,还不如提一下 CDNJS 对其它公共 CDN 服务的贡献——正如我在前面介绍的那样,国内很多公共 CDN 服务都是在同步 CDNJS 维护的 Lib 库。

CDNJS 的 CDN 由 Cloudflare 赞助,和 Cloudflare 官网同级别的(Enterprise Plan)服务。当然由于众所周知的原因,肯定不推荐面向国内的站点使用这家公共 CDN。考虑一下自己站点访客的主要来源,你会从 CDNJS 的几个镜像中挑选出符合需求的。

Unpkg

官网

  • 支持 HTTPS,支持 HTTP2
  • Cloudflare Free Plan
  • 没有国内节点
  • 非常丰富的海外节点
  • 国内的速度很不理想
  • 海外的速度非常优秀
  • unpkg.com,Cloudflare DNS
  • 便捷性:★★★

有搜索引擎,抓取并分发 NPM 包的文件

开源库、开源框架如果在文档的「Getting Started」中提到 CDN 的话,大多都会提一笔如何使用 Unpkg 加载。前身是 npmcdn.com 的 Unpkg 是最早分发 NPM 包的文件的公共 CDN,受到很多开发者的喜爱——Unpkg 可以很方便的直接使用指定版本的开源库。

不过由于 Unpkg 也是使用的 Cloudflare,在国内的速度并不理想,所以开发者大多都是用 Unpkg 开发和测试,并不会用在生产环境部署。国内也有一些 Unpkg 的镜像,但是我还是觉得 jsDelivr 更好用一些。

Bootstrap CDN

官网

  • 支持 HTTPS,支持 HTTP2
  • MaxCDN、Stackpath
  • 没有国内节点
  • 丰富的海外节点
  • 国内的速度不太理想
  • 不错的海外的速度
  • stackpath.bootstrapcdn.com maxcdn.bootstrapcdn.com,Route53 和 NS1 主从 DNS
  • 便捷性:★★★

支持一键复制文件 URL 和标签

Bootstrap CDN 是 Bootstrap 官方推荐使用的公共 CDN 服务,因此虽然只提供 Bootstrap、Font Awesome 和 Bootswatch 三个库的加速服务,但是使用人数众多,每月流量消耗都已经达到 PB 级别。

之前 Bootstrap CDN 由 MaxCDN 赞助,后来 Stackpath 合并了 MaxCDN 以后继续提供赞助;两个域名都可以正常使用。国内速度虽然略好于 Cloudflare,但是依然不理想,所以面向国内的站点也不推荐取用 Bootstrap CDN。

原文发布于微信公众号 - Zchannel(CzHelp)

原文发表时间:2018-10-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑白安全

“RedEye”新型勒索病毒软件破坏文件 重写MBR引导

新发现的一件勒索软件主要是为了摧毁受害者的文件而创建的,而不是将其加密并持有赎金。

671
来自专栏FreeBuf

TR-064漏洞受影响厂商设备及TR-064协议安全性分析

作者:英国Xiphos Research高级安全研究员 Darren Martyn 过去几个星期,嵌入式设备表现出来的安全状况让人担忧,在Mirai的早期代码...

2286
来自专栏安恒信息

本周关注病毒

Trojan.Agent.gdf(木马病毒) 警惕程度★★ 该病毒通过U盘,局域网,DLL劫持多种常用软件,感染压缩包格式的文件等手段传播;并利用不同手段关...

2806
来自专栏安恒信息

80%最畅销SOHO无线路由器发现安全漏洞

经过对很多小型和家庭办公使用最多的无线路由器的安全性进行检测之后发现,在亚马逊前25名最畅销的SOHO无线路由器中,80%存在安全漏洞。 ...

3719
来自专栏黑白安全

渗透测试

渗透测试,也称为笔测试,是针对您的计算机系统的一个模拟网络攻击,用于检查可利用的漏洞。在Web应用程序安全性方面,渗透测试通常用于增强Web应用程序防火墙(WA...

1381
来自专栏企鹅号快讯

各种NB的国外黑客网站

这次说说一些非常有价值的国外黑客网站大全! 有需要的可保存下来细细琢磨! 本公众号提供了图书馆及下载专区。该图书馆为初学者提供了黑客知识和计算机技术基础知识。下...

1.4K10
来自专栏FreeBuf

美国政府再次指责俄罗斯黑客攻击其关键基础设施

Cylance的研究员报道称网络攻击者在利用一个核心路由器针对一些基础设施进行攻击,美国指责这一攻击的实施者为俄罗斯。主要针对能源、核、商业设施、水、建筑、航空...

2926
来自专栏云计算D1net

使用云计算灾难恢复计划制定勒索软件恢复策略

如今,企业需要确保快照和云计算出现勒索软件,此外对备份存储执行严格的控制,以增加应对攻击的安全性。 如果勒索软件没有让IT人员夜不能寐,那么他很幸运。而如果一个...

4316
来自专栏FreeBuf

Joomla高危漏洞扫描事件分析

1.摘要 12月14日,Joomla官方网站紧急发布了一条由于安全漏洞引发的版本更新(3.4.6),根据安全公司sucuri对外发布的信息,此事扫描时间是利用了...

2148
来自专栏FreeBuf

我是如何黑掉英国间谍软件公司Gamma的

前几天,有黑客《入侵了英国间谍软件公司Gamma》。本文翻译自黑客自己公布的入侵指南。详细的介绍了从信息收集,到发现目标站点,以及进行源码审计,绕过waf注入,...

50210

扫码关注云+社区

领取腾讯云代金券