菜单

yuehaowei
发布于 2023-11-16 / 6 阅读 / 0 评论 / 0 点赞

从零开始配置一个CDN

本文中的服务器,域名,CDN全部采用腾讯云平台资源,马总打钱谢谢~

什么是 CDN ?

CDN 是 内容分发网络 的英文缩写,具体的定义谷歌百度上一搜一大把,我的理解就是 用来解决由用户客户端到资源所在服务器的距离造成的延迟的一个工具,比如说我的博客所在的服务器机房在北京,那么同等网络环境下,深圳的小伙伴的访问速度应该就要比北京的延迟高一些。像我中学时候玩英雄联盟也只能玩网通区,因为电信区的延迟太高影响操作(不是

CDN 解决起这个问题也比较直接,在各地部署机房,然后把你需要加速的资源发一份上去,这样用户在请求资源时就可以按照就近原则返回数据。比如说我写了一个专门用来部署静态资源(主要是图片资源)的服务,我把这个服务的域名使用 CDN 加速,这样图片就会发布到全国各地的机房内,深圳的小伙伴也可以看高清大图了🐶

具体的分配机制肯定更加复杂,有机会会深入研究一波~

如何配置 CDN ?

充钱可以变强这件事几乎在腾讯的所有产品中都可以得到证明(大概除了英雄联盟...),腾讯云 CDN 的产品文档简直是事无巨细地写了一大堆,所以我直接一波腾讯云全家桶来演示,挑里面比较关键的写

1. 开通服务(充钱)

首先打开浏览器搜索腾讯云,右上角先登录,新同学可以直接微信扫码很方便~

直接在输入框中输入 CDN 就可以,下面的最近访问中可以看到

这便是 CDN 的管理页面了,首先在开始配置 CDN 之前,你需要先准备好以下几个东西:

  1. 一台云服务器或轻量级应用服务器,后者主要是给一些个人开发者或者一些小的demo准备的,但是对我这样的选手来说完全够用,新同学入坑首选~如果你有高校的学生证(你大概率应该有,没有的话就去请教一下另一个马老师😂),那就可以搜一下腾讯云的学生特惠,价格香爆💥

  2. 一个域名。准备好服务器后,这个也是在腾讯云上直接搜域名就可以,选一个自己(钱包)喜欢的就好

  3. 一个证书用来开通 https 服务,这个购买域名以后腾讯云会给你大概20个免费证书,完全够用就不用再充值了

现在你有了 服务器、域名、证书,那就再充11块!买它 50GB 的境内 CDN 流量,足够你霍霍一阵了

2. 配置 CDN

首先点击左面的 域名管理,然后点击添加域名,这个域名就是你需要加速的域名

  • 加速域名不做赘述

  • 加速类型的话上面写的很清楚,如果主要是图片或者很久不改动的 html css js 等静态文件,那就选小文件

  • 源站配置这块需要说一下,回源是指用户访问资源时,CDN 上没有这个资源,那么就会去你的业务服务器上也就是源站上取。如果你跟我一样也是腾讯云全家桶,那么源站类型直接选自有源即可,源站地址可以直接写域名绑定的 IP,端口写业务运行的端口,权重暂时写100就可以

这一步是腾讯云根据你选择的加速类型自动生成的推荐配置,由于前一步选了 CDN 小文件,所以直接采用推荐配置即可,点击提交配置

这里体现出了腾讯云全家桶的好处👌在腾讯云购买的域名一般都会托管在 DNSPod 上,这里会直接查询到托管记录,直接一键配置就会省去很多麻烦,然后点击完成

3. 预热

恭喜🎉现在已经完成了 CDN 的配置,但我们还要测试一下,不要一顿操作猛如虎,一看战绩0-5😭那就真的很离谱,首先我们需要做的是先放一个测试图片到你自己的服务器上并且确定可以正常访问到

比如说,你加速的域名是 xxx.yyy.com,这时候你要确保 xxx.yyy.com/test.png 这个资源可以正常访问即可

然后我们提交一个预热任务

点击左面刷新预热,然后右面直接选择 URL 刷新,在输入框中输入你加速的域名,注意后面要加一个 “/”,这样会刷新整个站下的资源到 CDN 上,这个过程可能会耗费一点点🤏时间,可以点击操作记录查看刷新的进度

4. 测试

测试的过程稍微有一丢丢繁琐

  • 首先点击左侧域名管理,这个时候看一下右面的域名列表,确保状态和CNAME配置都有绿色的小对勾✅然后把 CNAME 下面的那个地址复制下来

  • 然后打开电脑上的终端,ping 一下刚才复制的地址。下面主要用 macOS 来演示

    这个时候就可以看到一个 IP 地址,这就是你 CDN 的 IP,别忘了这个也复制下来

  • 设置本地 HOSTS 文件。macOS 下在终端里输入 sudo vi /etc/hosts 输入密码后,把上面的 IP + 空格 + 你加速的域名(xxx.yyy.com)添加到文件中

    然后 :wq 保存并退出,这样就配置好了

  • 最后一步,打开浏览器,然后打开开发者工具,以 Chrome 浏览器为例按 F12 找到 Network, 输入资源地址 https://xxx.yyy.com/test.png

    只要看到下面的 Remote Address 的 IP 跟上面 ping 到的 IP 相同,说明 CDN 配置成功~恭喜🎉

    没有成功也不要紧,我之前不成功的原因是因为开了 VPN 😂 关掉以后就正常了,为了弥补写作水平不足还有 Windows 的小伙伴,直接上腾讯云官方教程

结语

通过一番操作终于是成功配置好了自己的 CDN,我的初心是因为一开始写博客,图片用的一个传图工具叫做 iPic ,它跟 Typora 配合得很好,直接把本地图片拖进来就可以自动上传,但是它也是依赖一些第三方图床比如微博的,这就导致了一旦图床出了问题,之前的图片都找不到了,为了解决这个问题,我用 nestJS 写了一个静态资源服务,然后绑定了 CDN,妈妈再也不用担心丢图问题了~


评论