优化博客Ⅱ-CDN加速
CDN加速
自从有了第一次博客优化经验,我就越发对优化感兴趣了嘿嘿(✧∇✧)。
看着博客首页打开时长为1200ms左右,我又开始琢磨有什么办法能再给网站提提速,让访问时间降低到1000ms以下,这时候我想起前不久群里讨论过这个问题,我翻回去看见他们提到了CDN加速。
CDN加速?好耳熟(ㅇㅅㅇ❀)...我之前也听过,不过概念还停留在就近获取网络资源上,今天就让我们一起学习一下什么是CDN,如何配置CDN加速。
CDN介绍
CDN是content delivery network或者是content distribution network的缩写,即内容分发网络。
CDN介绍起来很简单,原来也不复杂,说白了就是利用物理上的多台服务器,将用户需要的音乐、图片、视频、应用程序等资源分布式存储在全球各地,这样用户便可以高效、稳定的就近获取需要资源。
但是为什么需要CDN呢?
原因有两点:
其一互联网快速发展和网民的急速增多,导致原本宽裕的网络通道变得拥挤,一万个人同时使用一条网络通道和一亿人同时使用一条网络通道的体验显然是完全不一样的。
其二就是距离,试想一下如果我们要从美国那边请求一个资源,美国与中国之间的直线距离是11,160公里,而光速大概为30万公里/s,由此可以推算出一个请求和响应加起来需要74.4ms,看起来很少是不是,但这是最最理想的情况。需要从美国直接拉一条一万公里的光缆直通中国才能达到,想想就不现实,更何况还有网络拥堵、光缆速度达不到光速等诸多因素。
所以CDN出现了,用户不需要跨越上万公里去获取资源,只需要获取缓存在就近服务器上的资源就可以了,这样不仅避免了多人共用一条线路,也解决了超长距离的问题。
了解完CDN,我已经迫不及待开始实践了!
多吉云CDN加速
为什么选择多吉云的CDN加速呢?
好问题
因为当我准备去跟群里大佬一样白嫖百度CDN加速的时候。发现...从2023/05/05开始百度不再免费接入域名了(ノДT)。
于是我去网上找了一下,发现还有几个云服务商还提供每月免费额度的流量的CDN服务,本来我准备选择七牛云,毕竟在云服务这块还是蛮有名的,然鹅不支持https,只支持http,多方比对之下最后选择了多吉云。
多吉云注册后,每个月会有20G的免费流量,超过后就要收费了,并且支持https。
操作步骤
首先需要注册多吉云,然后进行实名认证,之后就可以绑定我们的域名进行CDN加速了。
一、绑定域名
首先我们需要对加速域名进行绑定:

加速域名就填写需要加速的域名,业务类型按照下面介绍选择,博客一类的网站选择网页小文件就可以,在源站IP中填入自己的服务器地址,协议根据自己网站选择,最后确认绑定。
二、验证域名所有权
输入域名和服务器IP确认绑定后,需要到服务器进行DNS验证域名所有权,我是阿里云服务器,所以去阿里云的域名解析里面添加规则:


三、加速域名测试
验证成功后等待部署创建加速域名:

等待五分钟左右刷新页面,就可以看到CDN加速域名CNAME了,接下来就可以去阿里云修改DNS记录进行域名转发了。
但如果你的网站是已上线网站,为了保证现有业务稳定运行,建议先在本地通过 Hosts 文件绑定 CDN 节点 IP 进行访问测试。
本地测试
- 加速域名添加成功后,融合 CDN 控制台的域名管理页中的域名列表的 CNAME 列会给出域名的 CNAME 值,例如www.lemondu.top.s2-web.dogedns.com。
- 复制该 CNAME 值,打开你电脑上的终端(Windows 系统为 CMD),输入并运行指令:
ping www.lemondu.top.s2-web.dogedns.com

命令行中显示的 IP,即为 CDN 节点 IP。
- 将上一步获取到的节点 IP(61.170.72.248),通过修改本地 Hosts 文件,绑定到加速域名(www.lemondu.top)。 Hosts 文件:

- 保存后,在本地通过浏览器访问加速域名进行测试,如果符合预期,说明配置正确。
配置 CNAME
本地测试成功后,就可以正式将CNAME配置到域名解析中了,依旧是在域名解析中添加记录,记录类型选择CNAME,并且如果有同名的 A 类型(或 AAAA 类型)记录,添加时可能会提示冲突,你需要先删除对应的 A 记录或者将其暂停。
添加记录完成后,最后还需进行测试。要验证 CNAME 是否配置成功,可以使用命令行工具测试:
nslookup -qt=cname 加速域名
若是成功,则会返回如下图所示结果:

如果程序显示的 canonical name 和多吉云控制台提供的 CNAME 值一致,则表示你的加速域名已经成功配置 CNAME,加速生效了。
效果
最后我们测试一下加速后的效果:

入站速度成功降低到了1000ms以下,效果达成!
防患于未然
别走,还有最后一步!这步很重要,那就是给CDN进行限流,现在大部分的CDN提供商都是实行超过流量自动欠费的机制,虽然个人网站一般不会有那么大的流浪,但如果哪天你的网站一不小心被恶意攻击者临幸了,那极有可能造成较大的财产损失。
所以我们需要进行流量限制,一般服务商都会提供这个功能,但不会主动提醒你开启(很贼),免费流量为20G,我将流量限制在了月19G,当这个月使用流量超过19G的时候就会停用域名,那时候访问就会变成404了,另外还有一些一些小时间段的限流,按分钟或天计算,还有单个链接的限流等等,可以根据实际情况进行开启。

缓存策略
接入CDN之后,我发现每次加载的内容都是一样的,就算发布了新文章也还是会加载到刚接入CDN时的样子,CDN的本质是就近缓存。
是不是我缓存策略没设置好?
进入多吉云控制台一看,果然,默认设置的是缓存全部资源:

我们需要关闭原来的全部缓存,换为静态资源缓存,第三条就是自己添加的静态资源缓存。
重新部署生效后,问题解决!
优化博客Ⅱ-CDN加速的更多相关文章
- OO第二单元优化博客
OO第二单元优化博客 第五次作业没有性能分,但是,我在这一单元的宗旨就是写一个日常生活中 最常见的那种电梯,所以第五次我没有写傻瓜电梯,而是直接写了个\(look\),和第六次基本相同. 总计一下lo ...
- OO第一单元优化博客
OO第一单元优化博客 第一次作业: 合并同类项+提正系数项+优化系数指数0/1=满分 第二次作业: 初始想法 一开始是想以\(sin(x)\)和\(cos(x)\)的指数作为坐标,在图上画出来就可 ...
- hexo next主题深度优化(七),cdn加速。
文章目录 注: 正题: 免费cdn 收费cdn 个人博客:https://mmmmmm.me 源码:https://github.com/dataiyangu/dataiyangu.github.io ...
- 第 15 篇:优化博客功能的细节,提升使用体验—— HelloDjango 系列教程
作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 在之前的系列教程中,我们已经实现了:文章的发布.展示.评论等功能,可能认真的小伙伴已经 ...
- SqlServer优化博客网址
CareySon Sql Server MVP : http://www.cnblogs.com/CareySon/
- VuePress 博客优化之开启 Algolia 全文搜索
前言 在 <一篇带你用 VuePress + Github Pages 搭建博客>中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档. 由于 V ...
- VuePress 博客之 SEO 优化(三)标题、链接优化
前言 在 <一篇带你用 VuePress + Github Pages 搭建博客>中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档. 本篇讲讲 ...
- VuePress 博客之 SEO 优化(二)重定向
前言 在 <一篇带你用 VuePress + Github Pages 搭建博客>中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档. 本篇讲讲 ...
- VuePress 博客之 SEO 优化(一) sitemap 与搜索引擎收录
前言 在 <一篇带你用 VuePress + Github Pages 搭建博客>中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档. 本篇讲讲 ...
- VuePress 博客优化之增加 Vssue 评论功能
前言 在 <一篇带你用 VuePress + Github Pages 搭建博客>中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档. 本篇讲讲 ...
随机推荐
- RMI,SOA,微服务
什么是SOA SOA(Service-Oriented Architecture),中文全称:面向服务的架构. SOA提倡将不同应用程序的业务功能封装成"服务"并宿主起来,通常以接 ...
- 掀起云端革命!ToDesk云电脑与传统PC电脑的差异分析
在科技日新月异的今天,传统PC电脑的市场地位正悄然发生变化.随着云计算技术的不断成熟与普及,云电脑逐渐走进大众视野,不同于传统PC电脑的高昂的成本和易退化的硬件性能,云电脑正以其轻成本高性能的优势吸引 ...
- OSG开发笔记(三十一):OSG中LOD层次细节模型介绍和使用
前言 模型较大的时候,出现卡顿,那么使用LOD(细节层次)进行层次细节调整,可以让原本卡顿的模型变得不卡顿. 本就是LOD介绍. Demo LOD 概述 LOD也称为层次细节模 ...
- zinxV0.1
基础的server 框架 抽象层IServer.go IServer.go type IServer interface { // 实现一个服务器的基本三个接口,启动,停止,入口 Start() St ...
- ARC127E Priority Queue
ARC127E Priority Queue 分析性质+dp. 思路 由于每次加入的数肯定是一个 \(a\) 的排列,但这个角度不好考虑. 设 \(\{a\}\) 为最终状态的集合,其中 \(a_i& ...
- 读书笔记-C#8.0本质论-04
18. 多线程 18.1 多线程基础 处理器受限延迟(Processor-bound latency):假定一个计算需要执行120亿次算术运算,而总共的处理能力是每秒60亿次,那么从请求结果到获得结果 ...
- 我是如何从0开始,在23天里完成一款Android游戏开发的 – Part 1 – 开篇与前2天
本文由 ImportNew - ImportNew读者 翻译自 bigosaur.如需转载本文,请先参见文章末尾处的转载要求. 本文是这个系列的第一篇文章,记录作者的开篇和前2天的情况.文章由 朱新亮 ...
- java——棋牌类游戏五子棋(webwzq1.0)之一(基础)
这是本人最近一段时间写的斗地主的java代码,大体框架都实现了,一些细节还需要后续优化. package basegame; import java.awt.Button; import java.a ...
- mindoc 迁移
1.备份数据库 mysqldump --databases mindoc_db > mindoc_db.sqlmysqldump -u USER_NAME -p PASSWORD [其他选项] ...
- rocketMQ集群部署
RocketMQ集群部署 RocketMQ是一款非常优秀的消息中间件,运用的场景也是非常丰富,且在各大公司运用中也非常广泛.但是它是如何进行部署的呢,以及它的高可用是如何实现的呢.那么就由我来为大家讲 ...