阿里云CDN加速原理详解

本文涉及的产品
边缘安全加速 ESA,基础版 1个月
CDN,50GB 1年
简介: 了解和学习阿里云CDN的工作原理非常重要,这对于网站优化、解决用户问题都有非常大的帮助。本文主要介绍了阿里云CDN的加速原理和缓存策略,举了一些实际的例子方便读者能清晰地理解阿里云CDN。

什么是CDN

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要包括了节点调度、节点负载均衡和内容存储、分发、管理技术。

阿里云CDN

阿里云在全球拥有2800+节点。中国内地(大陆)拥有2300+节点,覆盖31个省级区域,大量节点位于省会等一线城市。海外、中国香港、中国澳门和中国台湾拥有500+节点,覆盖70多个国家和地区。同时,阿里云所有节点均接入万兆网卡,单节点存储容量达40TB~1.5PB,带宽负载达到40Gbps~200Gbps,具备130Tbps带宽储备能力。

CDN加速前

使用CDN加速前,用户侧发起的请求通过用户侧DNS递归到网站DNS解析以后,最终用户侧直接请求网站服务器。这里可能会造成以下几种情况:

  1. 中心服务器负载过高,因为所有客户端发起的请求都会请求到服务器上
  2. 终端用户内容获取延时高,比如服务器在北京,而用户在广州
  3. 服务稳定性差

image.png

CDN加速后

CDN通过在现有网络中增加一层新的缓存节点,将源站的资源发布到最接近用户的网络节点,使得客户端在请求时直接访问到就近的CDN节点并命中该资源,减少回源情况,提高网站访问速度。

阿里云CDN缓存节点可分为L1节点(一级节点)和L2节点(二级节点),请求的流程是:客户端-->CDN_L1-->CDN_L2-->源站。CDN的L1节点分布在全国各省市,L2节点分布在几个大区下,可以把L2节点理解为汇聚式节点,简单架构如下图所示。
image.png

CDN节点缓存策略如下:
1.客户端向CDN节点发起连接请求,当L1节点有缓存资源时,会命中该资源,直接将数据返回给客户端。当L1节点无缓存资源时,会向L2节点请求对应资源,如果L2节点有缓存资源,则将资源同步到L1节点,并返回给用户;如果L2节点无缓存资源,则直接回客户源站获取资源,并按照配置的缓存策略进行缓存。
2.为了方便理解,再举一个简单例子,假设有杭州移动节点L1-hz和宁波移动节点L1-nb两个L1节点,这两个L1节点都回源到同一个L2这个节点,源站在北京。这几个CDN节点初始的时候都没有用户的缓存资源。当ABC三个用户依次请求同一个图片的时候,过程如下:

  • 杭州移动用户A被CDN调度到杭州移动L1-hz节点,L1-hz由于没有缓存,则回源到L2,L2由于也没有缓存,则回源到北京源站,请求到数据以后再返回给L1-hz,L1再返回给用户A。
  • 用户A请求完以后,L1-hz和L2节点都有了缓存资源。此时杭州移动用户B也开始访问这个图片,用户B也被分配到了L1-hz节点,由于L1-hz已经有这个图片的缓存了,因此不需要再去回源了,而是直接返回缓存给用户B。
  • 宁波移动用户C此时也访问了同一个图片,用户C被分配到了宁波移动节点L1-nb,由于L1-nb还没有缓存,就会回源到L2,而L2已经有缓存,因此L2会直接返回缓存数据给L1-nb,然后L1-nb再返回给用户B。此过程存在L1-nb向L2回源的过程,而L2不需要再去回源到源站了。
  • 通过CDN加速,杭州用户A和B可以直接从杭州节点读取缓存数据,宁波用户C可以直接从宁波节点读取数据,不需要每一次都去请求北京服务器了,提高了用户侧的访问速度,降低了服务器压力。

CDN工作原理

通过以下案例,可以进一步了解CDN的工作原理。
假设加速域名为www.a.com, 接入CDN网络,开始使用加速服务后,当终端用户(北京)发起HTTP请求时,处理流程如下图所示。

image.png

1.当终端用户(北京)向www.a.com 下的某资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。
2.LDNS检查缓存中是否有www.a.com 的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。
3.当授权DNS解析www.a.com 时,返回域名CNAME www.a.tbcdn.com 对应IP地址。
4.域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。
5.LDNS获取DNS返回的解析IP地址。
6.用户获取解析IP地址。
7.用户向获取的IP地址发起对该资源的访问请求。

  • 如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户,例如,图中步骤7和8,请求结束。
  • 如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点,例如,图中的北京节点,并返回给用户,请求结束。配置缓存策略的操作方法,请参见缓存配置。
特别注意
CDN调度系统分配节点的时候,是根据客户端的LocalDNS来分配节点的,而不是根据客户端IP来分配节点的。因此,如果客户端LocalDNS设置不正确的话会导致无法分配调度到最优的节点。

什么资源可以被加速

在HTTP请求的资源,请求可以分为静态请求和动态请求。
静态请求
静态请求是指在不同请求中访问到的数据都相同的静态文件。例如:图片、视频、网站中的文件(html、css、js)、软件安装包、apk文件、压缩包文件等。

CDN加速的本质是缓存加速,将您服务器上存储的静态内容缓存在阿里云CDN节点上,当您访问这些静态内容时,无需访问服务器源站,就近访问阿里云CDN节点即可获取相同内容,从而达到加速的效果,同时减轻服务器源站的压力。

动态请求
动态请求是指在不同请求中访问到的数据不相同的动态内容。例如:网站中的文件(asp、jsp、php、perl、cgi)、API接口、数据库交互请求等。

当客户端访问这些动态内容时,每次都需要访问用户的服务器,由服务器动态生成实时的数据并返回给客户端。因此CDN的缓存加速不适用于加速动态内容,CDN无法缓存实时变化的动态内容。对于动态内容请求,CDN节点只能转发回源站服务器,没有加速效果。

如果用户的网站或App应用有较多动态内容,例如需要对各种API接口进行加速,则需要使用阿里云全站加速产品。全站加速能同时加速动态和静态内容,加速方式如下:

  • 静态内容使用CDN加速。
  • 动态内容通过阿里云的路由优化、传输优化等动态加速技术以最快的速度访问您的服务器源站获取数据。从而达到全站加速的效果。

CDN的缓存策略

静态内容可以在CDN上缓存多久,这个是根据CDN的缓存策略的。如果用户没有主动到CDN上配置过期时间,则会遵循CDN的默认缓存策略。CDN的默认缓存时间比较短,最大不超过3600秒,因此很容易缓存过期。因为网站开发及其相关技术人员更清楚自身网站的业务逻辑、静态和动态因素,所以建议用户通过控制台按照文件类型和目录设置缓存时间。

用户可以登录阿里云CDN控制台配置缓存过期时间,针对静态资源配置指定目录和文件后缀名的缓存过期时间和优先级,资源过期后,自动从CDN节点删除。

全站加速和CDN

全站加速(Dynamic Route for Content Delivery Network)是阿里云融合了动态加速和静态加速技术的CDN产品。该产品一站式优化了页面动静态资源混杂、跨运营商、网络不稳定、单线源站、突发流量、网络拥塞等诸多因素导致的响应慢、丢包、服务不稳定的问题,提升全站性能和用户体验。全站加速和CDN的对比如下
image.png

全站加速的静态加速和CDN的加速原理一致,是通过将静态资源缓存到边缘节点的方式,提供用户就近访问去做加速。全站加速的动态加速是对于动态请求回源的时候,通过智能路由优化、协议优化等动态加速技术快速回源获取。

注:全站加速默认走了动态加速,动态加速是每次回源的。如果需要走缓存的话,需要 配置静态加速。目前配置静态加速支持按照文件类型、URI以及路径方式配置。

更多

CDN应用场景

目录
相关文章
|
1月前
|
缓存 前端开发 JavaScript
适合阿里云CDN分发的文件类型有哪些?
静态文件如网页、图片、视频等适合CDN分发,可提升加载速度,减轻源站压力。动态、私有或频繁变更内容则不适合。合理选择资源包,助力高效上云。
|
26天前
|
域名解析 缓存 监控
阿里云渠道商:如何排查阿里云CDN访问问题?
排查阿里云CDN访问问题需分步诊断:先检查DNS解析与CDN基础配置,再根据访问慢、内容未更新或50x错误等现象定位原因,结合ping、tracert及阿里云实时日志、节点检测等工具深度分析。掌握此流程,快速解决异常。
|
30天前
|
边缘计算 缓存 双11
阿里云渠道商:什么时候应该使用阿里云 CDN 预热?
阿里云CDN预热可将资源提前分发至边缘节点,降低首字节时间50%以上,减轻源站压力。适用于大促活动、大文件发布、定期更新、突发流量及APP资源更新等场景,提升访问速度与稳定性。首次访问求快用预热,内容更新生效用刷新。
|
30天前
|
缓存 安全 网络安全
阿里云渠道商:怎么通过阿里云CDN提高全球用户的访问体验?
阿里云CDN通过全球2800+节点、智能调度、性能优化与安全防护三大技术,实现低延迟、高稳定的内容分发,助力企业提升全球访问体验,让业务如本地般流畅。
|
1月前
|
Web App开发 缓存 监控
阿里云渠道商:如何优化阿里云 CDN 配额的使用效率?
CDN可提升网站速度,但30%企业因配置不当致带宽超支。本文分享阿里云验证的三大优化方案:精细化缓存、智能压缩与数据驱动配额调配,最高节省40%带宽成本。附实操步骤,助你高效降本。
|
30天前
|
缓存 边缘计算 双11
阿里云渠道商:适合使用CDN 预热的场景有哪些?
本文介绍CDN预热功能在大型活动、大文件分发、周期性更新等场景中的应用。通过提前将资源推送至边缘节点,可显著降低首字节时间、减轻源站压力,提升访问效率与系统稳定性。
|
30天前
|
缓存 安全 调度
阿里云渠道商:如何使用CDN加速全球业务?
阿里云CDN通过全球2800+节点,将内容分发至用户附近,实现“本地化”访问,显著降低延迟。支持智能压缩、动态缓存与HTTPS加密,兼具加速、优化与安全,助力企业高效出海,提升全球用户体验。
|
1月前
|
CDN
阿里云CDN计费价格如何收费的?一文看懂
阿里云CDN计费包含基础费用与增值服务。基础费用可选按流量、带宽峰值或月结95带宽计费,默认按流量计费;增值服务如HTTPS、QUIC、WAF、实时日志等按使用量收费,不使用不计费。支持资源包抵扣,详情参考官方文档。
291 10
|
1月前
|
缓存 监控 安全
如何设置阿里云CDN的流量阈值以避免超额费用?
在信息爆炸时代,阿里云CDN助力网站加速。合理设置CDN阈值可提升性能、节省带宽、增强安全。本文详解阈值配置步骤与监控优化,助你高效利用资源。无账号者可通过翼龙云上云,享技术支持与优惠。
|
1月前
|
缓存 前端开发 JavaScript
有哪些文件适合阿里云CDN分发?
静态、高频访问且对加载速度要求高的文件(如网页、图片、视频、下载文件)适合CDN加速,可提升性能与性价比;动态内容、私有数据、频繁更新或敏感资源则不宜使用。合理选择分发策略,优化体验并降低成本。