域名解析 cdn网站_一文搞懂CDN加速原理

news/2024/5/12 14:06:41/文章来源:https://blog.csdn.net/weixin_33877700/article/details/113453628

点击上方蓝字设为星标2df5ae2128c02d7ec142b1bb24f22bb4.png

每天傍晚18:00一起成长!

16bcfbc59f04ea59808e9870c5da7d56.png

原文来自:https://www.jianshu.com/p/1dae6e1680ff

一、什么是 CDN

CDN 的全称是(Content Delivery Network),即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。

简单的说,CDN 的工作原理就是将您源站的资源缓存到位于全球各地的 CDN 节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、缓解源站压力,保证用户访问资源的速度和体验。

de3f1569a97b8b9ef81c126f379bd72f.png

CDN 对网络的优化作用主要体现在如下几个方面
  • 解决服务器端的“第一公里”问题
  • 缓解甚至消除了不同运营商之间互联的瓶颈造成的影响
  • 减轻了各省的出口带宽压力
  • 缓解了骨干网的压力
  • 优化了网上热点内容的分布

二、CDN工作原理

传统访问过程

6aa422b5fa963ef0032bd4a5344725d9.png

传统访问过程

由上图可见,用户访问未使用CDN缓存网站的过程为:
  1. 用户输入访问的域名,操作系统向 LocalDns 查询域名的 ip 地址
  2. LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)
  3. ROOT DNS将域名授权 dns记录回应给 LocalDns
  4. LocalDns 得到域名的授权 dns 记录后,继续向域名授权 dns 查询域名的 ip 地址
  5. 域名授权 dns 查询域名记录后,回应给 LocalDns
  6. LocalDns 将得到的域名ip地址,回应给 用户端
  7. 用户得到域名 ip 地址后,访问站点服务器
  8. 站点服务器应答请求,将内容返回给客户端

CDN 访问过程

5b5399f39c8d2b683fe995a5f6eda242.png

通过上图,我们可以了解到,使用了CDN缓存后的网站的访问过程变为:

  1. 用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址.

  2. LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)

  3. ROOT DNS将域名授权dns记录回应给 LocalDns

  4. LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址

  5. 域名授权dns 查询域名记录后(一般是CNAME),回应给 LocalDns

  6. LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址

  7. 智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns

  8. LocalDns 将得到的域名ip地址,回应给 用户端

  9. 用户得到域名ip地址后,访问站点服务器

  10. CDN 节点服务器应答请求,将内容返回给客户端。(缓存服务器一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程)

通过以上的分析我们可以得到,为了实现对普通用户透明(使用缓存后用户客户端无需进行任何设置)访问,需要使用 DNS(域名解析)来引导用户来访问 Cache 服务器,以实现透明的加速服务。由于用户访问网站的第一步就是域名解析,所以通过修改dns来引导用户访问是最简单有效的方式。

CDN网络的组成要素

对于普通的 Internet 用户,每个 CDN 节点就相当于一个放置在它周围的网站服务器。通过对 DNS 的接管,用户的请求被透明地指向离他最近的节点,节点中 CDN 服务器会像网站的原始服务器一样,响应用户的请求。 由于它离用户更近,因而响应时间必然更快。从上面图中虚线圈起来的那块,就是 CDN 层,这层是位于用户端和站点服务器之间。

智能调度 DNS(比如 f5 的 3DNS)

  • 智能调度DNS是CDN服务中的关键系统.当用户访问加入CDN服务的网站时,域名解析请求将最终由 “智能调度DNS”负责处理。
  • 它通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户可以得到快速的服务。
  • 同时它需要与分布在各地的CDN节点保持通信,跟踪各节点的健康状态、容量等信息,确保将用户的请求分配到就近可用的节点上.

缓存功能服务

  • 负载均衡设备(如lvs,F5的BIG/IP)
  • 内容Cache服务器(如squid)
  • 共享存储

三、名词解释

CNAME记录(CNAME record)

CNAME即别名( Canonical Name );可以用来把一个域名解析到另一个域名,当 DNS 系统在查询 CNAME 左面的名称的时候,都会转向 CNAME 右面的名称再进行查询,一直追踪到最后的 PTR 或 A 名称,成功查询后才会做出回应,否则失败。例如,你有一台服务器上存放了很多资料,你使用docs.example.com去访问这些资源,但又希望通过documents.example.com也能访问到这些资源,那么你就可以在您的DNS解析服务商添加一条CNAME记录,将documents.example.com指向docs.example.com,添加该条CNAME记录后,所有访问documents.example.com的请求都会被转到docs.example.com,获得相同的内容。

CNAME域名

接入CDN时,在CDN提供商控制台添加完加速域名后,您会得到一个CDN给您分配的CNAME域名, 您需要在您的DNS解析服务商添加CNAME记录,将自己的加速域名指向这个CNAME域名,这样该域名所有的请求才会都将转向CDN的节点,达到加速效果。

DNS

DNS 即 Domain Name System,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络可以识别的 IP 地址。人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。比如:上网时输入的www.baidu.com 会自动转换成为 220.181.112.143。

常见的DNS解析服务商有:阿里云解析,万网解析,DNSPod,新网解析,Route53(AWS),Dyn,Cloudflare等。

回源 host

回源host:回源 host 决定回源请求访问到源站上的具体某个站点。

例子1:源站是域名源站为www.a.com,回源host为www.b.com,那么实际回源是请求到`www.a.com解析到的IP,对应的主机上的站点www.b.com

例子2:源站是IP源站为1.1.1.1, 回源host为www.b.com,那么实际回源的是1.1.1.1对应的主机上的站点www.b.com

协议回源

指回源时使用的协议和客户端访问资源时的协议保持一致,即如果客户端使用 HTTPS 方式请求资源,当CDN节点上未缓存该资源时,节点会使用相同的 HTTPS 方式回源获取资源;同理如果客户端使用 HTTP 协议的请求,CDN节点回源时也使用HTTP协议。

往期好文合集

  • 阿里彻底拆中台了!

  • 肝了一晚上搞出来一个微信订阅号鉴黄机器人

  • 安装Powerline并配置Vim、Bash、tmux、IPython、pdb

关注快哥,快学Java!

d6cb2832762a937e12c5aea80f80ab6f.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_829386.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java expected_「expected」JAVA常见错误之 expected - seo实验室

expected例1:public class line1{int test1666;line2 l2new line2();l2.ShowIt(test1);}例2:public class line1{int test1666;line2 l2new line2();line1(){l2.ShowIt(test1);}}编译前者会出现如下错误:原因所写的调用方法的语句放在类中的位置不对,必须…

ea分析php类,PHP解析读取gridea静态博客RSS整合到网站首页

最近在更新typecho个人网站和gridea静态博客,需要在网站首页展现博客的动态,因为Gridea静态博客,没有数据库,前期都是手工将博客的标题和链接添加到网站的首页,今天启用了博客的RSS聚合系统,可以通过RSS实现…

[转]网站优化-IIS7下静态文件的优化

本文转自:http://www.cnblogs.com/Leung/archive/2009/10/26/1590256.html 在网站开发过程中,通常我们会对网站的静态文件做处事,像图片文件,CSS,JS文件,其实以前也写过类似的文章,现在只是做一个针对性的总结下. JS文件处理: 网站优化来说,其实是见议我们放在网页最…

我是如何对网站CSS进行架构的

一、写在前面的 都是自己积累形成的一些东西,可能带有明显的个人印记。不是专业内容,不是权威指南,只是展示一点自己的观点,借此希望能与各位优秀的同行交流看法,见解。以得到进步与提高。 二、我所知的一些过往的做法…

文字图片转换成html代码,IMG4Me 网站在线把文字转换为图片

IMG4Me网站首页截图文字做成图片,很简单的操作,但今天所介绍的网站IMG4Me.com所要做的并非简单地输入文字就直接生成图片,而希望借助这种方式,来防范垃圾邮件。如果你有过这样的经历——不小心留下自己的邮件地址或其他信息&#…

网站安全狗apache V3.1新版来啦 抵御网络攻击

2019独角兽企业重金招聘Python工程师标准>>> 当当当~~~网站安全狗apache V3.1新版来啦~~~大家是不是也一直在期待apache的新版呢?还等什么~~~到安全狗官网下载安装个吧~~ 安全狗官网地址http://www.safedog.cn/website_safedog.html 此次版本主要更新的…

【matlab教程】07、资源共享网站 file exchange

地址:https://ww2.mathworks.cn/matlabcentral/fileexchange/ 里面可能会有用得上的函数,比如我想找读obj的函数 readobj 下载-解压-把函数放入自己的代码文件夹中就行

生产环境-linux-网站被挂******经历

安全与方便始终是对立的,然而运维人员忽视系统安全方面的建设,带来的后果将是非常严重的,以下是一台未上线服务器***后的***经历。一、出现异常,排查原因发现异常是通过远端监控脚本发现访问网站时断时续,使用ssh工具连…

dhclient获取不到ip_网站接入CDN后如何设置获取真实的用户IP地址信息

一般我们在使用WordPress程序的时候,在评论后台是可以看到用户留言的信息的,包括用户的IP地址。当然也包括我们在使用的日志查看用户日志信息的。但是,如果我们启用CDN内容分发功能之后,获取到的IP地址信息都是CDN 的IP地址&#…

在线正则表达式网站

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/xiechaoyong/blog/413804

一个没水平的钓鱼网站黑三个人:人们的安全意识和安全知识的缺失

今天,在我的qq好友里面发生这这么一件事情。我的表妹qq被盗,在空间里发了一个钓鱼网站的动态。不久我表妹的表哥的qq空间也发出了同样的动态。过了四五个小时吧,我表弟的空间里也冒出了一样的钓鱼网站动态。最后,还是我去跟他们说…

php 修改文件属性命令,防止webshell,网站安全设置必会命令,Linux 文件基本属性: chown修改所属组 和 chmod修改文件属性命令...

最近,我总结了一套安全法则,可以让网站不被拿到webshell那就是网站文件全部设置属主为root对于uploads这些可写的目录,可以配置成777但要在相应的apache配置文件里,设置不能执行脚本ErrorDocument 404 /404/404.htmlErrorDocument…

比较好的网站及工具

2019独角兽企业重金招聘Python工程师标准>>> http://www.odi.ch/prog/design/newbies.php Java Anti-Patterns http://www.ruanyifeng.com/blog/ 阮一峰的网络日志 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures http://unxutils.sourceforge.…

小demo—实现访问网站总人数的记录

学习了html、jsp、servlet几天,练习一个小demo,通过HttpServlet中的getServletContext() 方法,实现统计网站访问总人数的一个小功能。代码如下: 我们先自定义一个Servlet类,实现HttpServlet, public class…

Azure Stack PaaS-网站(WebApp)背后是什么原理?

欢迎加入QQ群(423730487)!4月9日在上海有一场线下活动,盆盆还有微软Azure Stack产品组专家会和大家一起分享技术,届时会在QQ群里直播哈。添加盆盆的微信(markpah),我会把您拉到微信群。为什么要学习Azure Stack?因为这…

SEO独家干货:利用外链投票模型操作新站快速排名

今年我在卢松松博客投稿了不少的干货文章,其中有一篇叫做“SEO外链算法独家揭秘”,里面提到了很多朋友或许都没有思考到的点,我一直相信,在搜索引擎优化当中,当任何一个点优化到极致,你的排名将顺从着你的极…

网站移植到linux上后常犯的错误

常犯的错误 1:gcc库没装或者没装全 表现:没有可用的C编译器 同类错误:提示g not found, 解决:出现以上错误,则是因为gcc编译器没装,或者是没装全. 挂载光盘…

网站分析数据(即用户行为数据)的三种收集方式详解

网站分析数据的三种收集方式详解 2012年11月02日 | 作者 数码林 | 互联网热门转载, 网站分析 回顾网站数据分析历史,从“您是第***位来访用户”到现在百家齐放的专业工具提供商,网站分析已经逐渐发展衍化成一门科学。但面对形态各异的分析数据&#x…

不完美的网站分析数据

不完美的网站分析数据 2012年11月05日 | 作者 数码林 | 互联网热门转载, 网站分析 一、 技术理想化 每种数据收集方式都有其独特的技术优势,但没有一种收集方式能完美的捕获到访问者在网站上的所有动作,每种技术也都会由于自身的局限性导致你看到的数据…

一个SEO主管如何打造自己的百万年薪

进入了SEO行业一步步都会走到主管级别,一个SEO主管如何打造自己的百万年薪,如何去帮助自己的团队都各自寻找到自己价值,这就是我接下来要讲授的SEO主管如何去打造自己的百万年薪,成就自己的团队! 让我们的海南网站关键词优化更轻松…