首页 > 其他分享 >优化博客Ⅱ-CDN加速

优化博客Ⅱ-CDN加速

时间:2024-12-05 21:54:17浏览次数:9  
标签:缓存 多吉 CDN 博客 域名 CNAME 优化 加速

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加速了。

一、绑定域名

首先我们需要对加速域名进行绑定:
CDN_yuming
加速域名就填写需要加速的域名,业务类型按照下面介绍选择,博客一类的网站选择网页小文件就可以,在源站IP中填入自己的服务器地址,协议根据自己网站选择,最后确认绑定。

二、验证域名所有权

输入域名和服务器IP确认绑定后,需要到服务器进行DNS验证域名所有权,我是阿里云服务器,所以去阿里云的域名解析里面添加规则:

CDN_ymyz

CDN_DNS

三、加速域名测试

验证成功后等待部署创建加速域名:
加速域名部署中
等待五分钟左右刷新页面,就可以看到CDN加速域名CNAME了,接下来就可以去阿里云修改DNS记录进行域名转发了。

但如果你的网站是已上线网站,为了保证现有业务稳定运行,建议先在本地通过 Hosts 文件绑定 CDN 节点 IP 进行访问测试。

本地测试

  1. 加速域名添加成功后,融合 CDN 控制台的域名管理页中的域名列表的 CNAME 列会给出域名的 CNAME 值,例如www.lemondu.top.s2-web.dogedns.com。
  2. 复制该 CNAME 值,打开你电脑上的终端(Windows 系统为 CMD),输入并运行指令:
ping www.lemondu.top.s2-web.dogedns.com

CDN_local_test
命令行中显示的 IP,即为 CDN 节点 IP。

  1. 将上一步获取到的节点 IP(61.170.72.248),通过修改本地 Hosts 文件,绑定到加速域名(www.lemondu.top)。 Hosts 文件:
    CDN_local_hosts
  2. 保存后,在本地通过浏览器访问加速域名进行测试,如果符合预期,说明配置正确。

配置 CNAME

本地测试成功后,就可以正式将CNAME配置到域名解析中了,依旧是在域名解析中添加记录,记录类型选择CNAME,并且如果有同名的 A 类型(或 AAAA 类型)记录,添加时可能会提示冲突,你需要先删除对应的 A 记录或者将其暂停。

添加记录完成后,最后还需进行测试。要验证 CNAME 是否配置成功,可以使用命令行工具测试:

nslookup -qt=cname 加速域名

若是成功,则会返回如下图所示结果:
CDN_success
如果程序显示的 canonical name 和多吉云控制台提供的 CNAME 值一致,则表示你的加速域名已经成功配置 CNAME,加速生效了。

效果

最后我们测试一下加速后的效果:
CDN_vertify
入站速度成功降低到了1000ms以下,效果达成!

防患于未然

别走,还有最后一步!这步很重要,那就是给CDN进行限流,现在大部分的CDN提供商都是实行超过流量自动欠费的机制,虽然个人网站一般不会有那么大的流浪,但如果哪天你的网站一不小心被恶意攻击者临幸了,那极有可能造成较大的财产损失。

所以我们需要进行流量限制,一般服务商都会提供这个功能,但不会主动提醒你开启(很贼),免费流量为20G,我将流量限制在了月19G,当这个月使用流量超过19G的时候就会停用域名,那时候访问就会变成404了,另外还有一些一些小时间段的限流,按分钟或天计算,还有单个链接的限流等等,可以根据实际情况进行开启。
CDN_reject_hk

缓存策略

接入CDN之后,我发现每次加载的内容都是一样的,就算发布了新文章也还是会加载到刚接入CDN时的样子,CDN的本质是就近缓存。

是不是我缓存策略没设置好?

进入多吉云控制台一看,果然,默认设置的是缓存全部资源:
CDN_cache
我们需要关闭原来的全部缓存,换为静态资源缓存,第三条就是自己添加的静态资源缓存。

重新部署生效后,问题解决!

标签:缓存,多吉,CDN,博客,域名,CNAME,优化,加速
From: https://www.cnblogs.com/lemondu/p/18589495

相关文章

  • 【IC】静态功耗和动态功耗优化比如何设置?
    innovus和genus工具中有静态和动态功耗优化的比例设置:该变量为1则只优化leakage,0则只优化dynamic,可在1~0之间进行设置set_dbopt_leakage_to_dynamic_ratio1计算得到dynamic/leakage的功耗比为k,可知:当k>>1时,说明动态功耗占比极高,此时优化比例应接近0当k趋于0时,说明静......
  • iOS IPA体积优化
     需求背景主要是整体的安装包体积太大产生了一些差评,另外在构建时长和上传时长越来越长。IPA包大小:下图是App安装包在常见设备的安装大小:问题原因:代码逻辑问题1、通过解压将IPA改成zip格式,然后解压处理的payload文件。通过右键选择showpackagecontents,可......
  • IT行业的流程管理该怎么优化?有什么好用的工具?
    无论是大规模制造业还是科技创新型企业,优化流程管理都能够显著提高工作效率、降低成本并增强企业的市场适应力。那么,如何才能做好流程管理,打造高效流程管理体系呢?首先,要搞清楚流程管理的五大步骤。1.信息收集工作要做好在进行任何流程优化前,企业首先需要收集大量关于现有流程......
  • 网站动静加速架构 dcdn+ga 全站加速和全球加速api
    背景:  1,公司服务全部在香港  2,所有的服务也都在香港  3,但是我们的客户都在国内  4,那么国内用户访问香港的服务那么就会存在慢的问题 至于为什么不放到国内,因为我们公司是做nft的。所以你懂得。  一、加速  1.1 静态加速    1,顾名思......
  • 【python自动化三】allure测试报告优化
    前文中讲了如何集成allure测试报告,但生成的测试报告比较简单可以看到无论是主页还是具体用例页面,内容都比较少,无法看到更具体的内容,这里我们丰富一下测试报告1.添加allure相关的装饰器装饰器说明@allure.epic()场景范围,直译为史诗,就是一个比较大的场景范围@allure.feat......
  • 超级的美化博客~~
    设置https://i.cnblogs.com/settings到这里设置,把“显示行号”叉掉!页面定制CSS码往下翻,把下面代码复制到“页面定制CSS码”~~#blogLogo,.blogStats{float:right}.day,.div_my_zzk,.entrylistPostSummary,.feedbackCon,.feedbackItem,.postCon,.postMeta,.postSticky{position......
  • 从0开始机器学习--12.决策分析-运筹优化与数学建模(决策分析方法,评价模型-层次分析法AH
    写在前面这些内容准确来说严格意义上不属于机器学习,把这部分内容归在这篇专栏中,主要原因之一是:机器学习算是与评价模型有关,且机器学习可以解决数学建模的问题。(其实就是我不想让这篇文章没有专栏归属,就把它聚类到这里了,后续若有更新其他运筹或数模的文章会再单独分类的~)机器......
  • 对`a == ('1'||'2'||'3') ? false : true`写法进行改进,写出你优化后的方法
    Theoriginalexpressiona==('1'||'2'||'3')?false:trueisflawedanddoesn'tworkasintended.The('1'||'2'||'3')partwillalwaysevaluateto'1'becauseofhowthe||(OR......
  • hexo+github搭建个人博客
    一、环境准备1.安装Node.js直接到官网上下载安装即可Node.js(Node.js版本需不低于10.13,建议使用Node.js12.0及以上版本)Node自带npmnpm换源(选择一个即可)#淘宝npmconfigsetregistryhttps://registry.npmmirror.com#阿里云npmconfigsetreg......
  • JVM优化,Redis,MySQL相关面试题
    一、平常对SQL优化的了解1.索引优化创建索引:为常用的查询字段创建索引,可以显著提高查询速度。例如,为订单金额的字段创建索引,可以加速按订单金额的排序操作。优化索引:定期维护索引,避免索引碎片化,保持索引性能。使用覆盖索引:通过创建覆盖索引,可以避免回表操作,进一步提高查......