一、cdn简介
内容分发网络(Content Delivery Network,CDN)是一种分布式服务器系统,根据用户的地理位置向其提供网络内容。CDN的目的是减少延迟,提高网站和在线应用程序的整体性能。
二、 CDN使用原理
当我们使用域名访问某一个网站时,实际上就是将请求包(以Http请求为例)通过网络传输给某台服务器,比如访问“www.baidu.com”时:
首先解析出该域名所对应的IP地址(DNS域名解析)
然后将Http请求包通过网络路由到IP地址所对应的服务器
我们通常说“服务器的IP地址”,这其实不太准确,IP地址是和网卡绑定的,一个服务器可以有多个网卡,也就是可能有多个IP地址。
域名解析
解析域名分为两种:
将一个域名解析为一个IP地址
将一个域名解析为另外一个域名
而域名解析,实际上就是解析出指定域名所对应的IP地址,或者该域名的一个CNAME。
而域名解析是由DNS系统来负责的,DNS服务接受外部请求,从请求里提取域名,
如果这个域名对应的是IP地址,则返回这个IP地址,
如果这个域名对应的是CNAME,则继续查找CNAME域名的IP地址,然后将该地址返回给请求发送者。
没有CNAME的情况:
有CNAME的情况:
特别注意:在有CNAME的情况下,我们可以发现,CNAME实际上在域名解析的过程中承担了中间人(或者说代理)的角色,这是CDN实现的关键
cdn原理
cdn厂商在全国部署cdn服务器用于存放网站的静态资源,客户在使用的时候就可以把自己的程序上传的cdn厂商的机器上,在访问的时候就可以去获取资源,但在这中间需要cname(通俗来讲就是别名),所有cdn厂商在每个地区都做了专用的DNS服务器。
三、 源站
CDN源站是指内容分发网络中的原始服务器或数据源,它是存储和提供网站或应用程序的实际内容的服务器。
当用户请求访问某个网站或应用程序时,CDN 会将请求转发到最近的边缘节点或缓存服务器,以提供更快的内容传输和更好的用户体验。这些边缘节点或缓存服务器通常会缓存一部分内容,以便在后续请求时能够快速响应。
然而,如果边缘节点或缓存服务器上没有缓存到请求的内容,或者内容已经过期,那么 CDN 将会从源站获取最新的内容,并将其传输到边缘节点或缓存服务器,以供后续请求使用。
源站通常是网站或应用程序的主服务器,它负责生成、存储和管理实际的内容,如网页文件、图像、视频、音频等。源站的性能和可靠性对于 CDN 的整体性能和用户体验至关重要。
通过使用 CDN,源站可以减轻负载,因为 CDN 可以处理大量的请求和内容分发工作,从而提高网站的可扩展性和性能。同时,CDN 还可以提供更好的地理分布和内容加速功能,使用户能够更快地访问内容,无论他们在世界的哪个位置。
四、 边缘节点
CDN边缘节点是内容分发网络中的一部分,它们位于网络的边缘,接近最终用户的位置。
边缘节点的主要作用是缓存和分发内容,以提高内容的传输速度和用户体验。当用户请求访问某个网站或应用程序时,CDN 会将请求路由到最近的边缘节点,该节点会检查自己是否缓存了请求的内容。如果缓存中存在该内容,边缘节点会直接将内容返回给用户,从而减少了源站的负载和传输延迟。
边缘节点通常分布在全球各地的不同地理位置,以确保用户能够从最近的节点获取内容。这样可以减少内容的传输距离和时间,提高内容的加载速度和响应时间。
边缘节点还可以执行其他功能,如内容压缩、协议优化、安全防护等,以进一步提高内容的传输效率和安全性。
通过使用 CDN 边缘节点,网站或应用程序可以实现更快的内容加载速度、更好的用户体验、更高的可用性和可靠性。同时,CDN 还可以帮助减轻源站的负载,提高网站的可扩展性和性能。
五、回源
CDN 回源是指当 CDN 缓存服务器上没有用户请求的内容时,它会向源站(即内容的原始服务器)发起请求,以获取最新的内容并将其返回给用户的过程。
在 CDN 工作原理中,缓存服务器通常会存储一部分常用的内容,以便在用户请求时能够快速响应。当用户请求的内容不存在于缓存服务器上时,CDN 会触发回源操作。
回源过程包括以下步骤:
CDN 缓存服务器检测到请求的内容在本地缓存中不存在。
缓存服务器向源站发送请求,获取所需的内容。
源站接收到请求并生成响应,将内容发送给缓存服务器。
缓存服务器收到源站的响应后,将内容存储在本地缓存中,并将其返回给用户。
通过 CDN 回源,用户可以从缓存服务器获得快速的内容响应,而不必直接与源站进行交互。这有助于提高内容的分发效率、降低源站的负载,并提供更好的用户体验。
# 回源流程 访问者(www.yeruchimei.top) -> CDN(回源) -> 回源host(ip) -> CDN(返回资源) -> 访问者(获取资源)
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/30938