乐趣区

关于cdn:我是如何让我网站的素材资源加载的如此之快的

如想获得最佳浏览体验,请拜访:https://blog.projectoms.com/p…
* 本文是自己第一次写技术文章,如有有余请斧正, 谢谢!

让 DNS 很快
家喻户晓,想让人胜利就要从娃娃抓起。所以想让一个素材零碎变得超快则要从 DNS 解析做起。

能够看到,我的 DNS 外表上看起来是自建的,实际上我采纳了一种自欺欺人的重路由的办法放慢了 DNS 速度。

(外面还有阿里云 DNS 记录的起因和影响咱们下文会说)

有人就要问了,马老师啊这个产生甚么事了阿里云 VIP 默认 DNS 提供的路由不香吗?干嘛还要费尽心思自路由呢?

这你就不晓得了,在我测试过后,发现阿里云个人版 DNS 之所以比贵 4 倍的企业版速度慢,是因为企业版 DNS 有地区解析,会依据国内外返回不同节点(阿里云尽管有 Anycast 的节点,但其余都不是),这样如果国内用户轮询到一个美国节点必定速度将大打折扣。

如图,国内查问会一股脑把所有地址丢进去,包含海内节点,所以速度令人担忧

而企业版在国内查问时返回的均为国内节点,所以速度外表上看起来比个人版快了一大截

能够看到,企业版在香港机器上返回的均为海内节点,所以看到这里你也晓得自路由的重要性了吧

上面我来说一下我是如何实现自路由的。

首先,咱们要失去所有节点 IP,其实间接 Dig 就行,但我为了保险起见,还是寰球 PING 了一下,确认和 Dig 一次的节点数是统一的。

接下来,就是利用阿里云自带的分区解析性能,将 IP 分为默认和海内两组,当然 IPv6 只有国内所以默认就好。

这里要留神,阿里云有一个 IP 是 Anycast 的,且国内外都有节点,所以咱们把这个 IP(140.205.1.1)既退出默认,又退出国外即可.

这里还有一个问题,咱们要用域名 projectoms.com 解析 projectoms.com,为了防止递归,须要为 NS 服务器增加胶水记录(Glue Records), 相干原理自行谷歌。

胶水记录需到域名注册商处增加,我的是阿里云。

阿里云管胶水记录叫自定义 DNS Host,依照阐明增加 IP 即可,实现后咱们需期待 24-48 小时让这些信息缓存到.com DNS 服务器中,实际上我等了约 10 小时就能够了。

接下来就是把 DNS 改成咱们本人的 DNS 了,功败垂成!

这里留神,尽管 Dig 查问到的 NS 记录仍有阿里云的,不过个别 DNS 解析器都以注册局列出的 DNS 服务器为准,所以咱们的自路由是无效的。

让建设连贯很快
家喻户晓,建设 HTTPS 须要 TCP 握个手而后 SSL 再握个手,其中因为 RSA 长度问题 SSL 握手往往要花费数百毫秒,为了缩小用户白屏等待时间,ECC 椭圆曲线算法被采纳了。

目前因为这个算法太新了,旧设施 (XP) 不反对,所以兼容性较差,然而我网站访问者个别都应用 Win 10,Chrome. 简直没有用 IE 拜访的。所以我集体感觉 ECC 裸奔其实是没问题的(因为 Android 4 以下不反对,所以兼容性还是比拟差的),至多我的用户中没有 XP 用户,且 CDN 多不反对双证书。所以 2021 年 4 月起你能够看见我的网站(国内)仅有 ECC 证书。

目前 RSA 证书没到期先勉强用着,等 4 月咱们会换成 ECC 证书。

2021 年 3 月 21 日,正式启用全新 ECC 证书。

RSA

ECC
如图,握手工夫在 Server 和 Client 配置雷同时速度有显著晋升。

让 CDN 回源很快
家喻户晓,因为中国的非凡网络环境,海内内容都十分的慢,而且因为咱们将素材资源存储在 GitHub 上,而 GitHub 仅在美国外乡有数据中心,所以让 CDN 回源很快十分重要。

(留神!本办法已临时生效,且短期不会复原!)最开始,咱们采纳的是 Vercel。Vercel 是一个无服务器函数平台,然而同时 Vercel 也提供基于 AGA 的弱小内容散发网络,Amazon 的中国网络品质也不必我多说,大家也是能体验进去的。所以咱们采纳了 Vercel 作为源站。

Vercel 管理层有中国人,所以实践上对大陆相对来说比拟敌对,然而近期因为晓得和白嫖 Vercel 的人越来越多,导致了 AGA 网络抽风。最近 Vercel 决定将大陆 IP 对立路由到美国的节点,导致速度直线降落,基本无法忍受(海内速度均失常),咱们便决定采纳新的办法解决大陆 CDN 回源。

当初咱们应用的解决方案是:一开始,咱们想利用在北京的一台阿里云 VM 将 GitHub 的内容存到本地,但因为阿里云到海内是电信的 163 民用网,速度也没有太大恶化,最终咱们采纳在香港的一台 GCP 从 GitHub 上下载内容,再利用同步技术从北京的阿里云机子被动拉取香港 GCP 上从 GitHub 下载的资源素材文件,同步速度能够承受。

因为 CDN 回源设置的机子在国内,所以当初回源速度间接腾飞。在我家的本地带宽曾经能够跑满北京阿里云服务器带宽了(捂脸笑 …)

最初一公里:让 CDN 边缘节点很快
国内
这个 … 其实没有什么好说的,鹅厂的 CDN 边缘节点品质还是不错的。并且在和鹅厂工作人员一番 切 磋 之后,我有了 IPV6 节点的使用权(尽管当初所有人都有了呜呜呜)目前的惟一比拟遗憾的是我的减速类型不反对 TLS 1.3,这个置信鹅厂很快就能解决。

海内
Vercel 把 AGA 调的十分好,这个其实也没有什么遗憾、毛病之类的,要非要找个毛病进去,那就是 AGA 不反对 IPV6,这个 Amazon 预计会 …. 解决吧。

最 终 成 果

PING

速度测试

本地带宽实测:未击中缓存

本地带宽实测:击中缓存
如果你想用这个资源站,欢送与我分割:tom@projectoms.com!如果感觉我的文章有用,欢送点赞转发赞叹!您的反对就是我创作的能源,非常感谢!!!

退出移动版