网页缓存层-CDN

1. CDN 概念

CDN(Content Delivery Network,内容分发网络) 是一个由多个分布式服务器(边缘节点)组成的网络系统,用于高效、快速地分发静态和动态内容(如网页、图片、视频、JavaScript、CSS 等)到全球各地的用户。

作用原理:将资源分发到不同物理地点的服务器上,让不同物理地点的用户都能够实现就近资源访问,实现低延迟,高并发。

2. CDN 的作用

  • 加速内容传输:让用户从最近的服务器获取数据,减少延迟。
  • 降低源服务器负载:减少直接访问源站的请求,提高源站稳定性。
  • 提升高并发访问能力:适用于突发流量(如电商大促、热门新闻)。
  • 增强安全性:提供 DDoS 防护、WAF(Web 应用防火墙)等安全功能。

3. CDN 的工作流程

  1. 用户请求资源(如访问一个网站或加载图片)。
  2. DNS 解析:CDN 的智能 DNS 会返回离用户最近的边缘节点 IP,而非源站 IP。
  3. 边缘节点响应
    • 如果该节点缓存了请求的内容,直接返回(缓存命中)。
    • 如果没有缓存或缓存过期,则回源向源站请求数据,并缓存到边缘节点。
  4. 用户获取数据:从最近的 CDN 节点快速加载内容。

以阿里云的 CDN 服务为例了解 CDN 加速原理:

下述内容摘至阿里云官方文档

假设您的加速域名为www.aliyundoc.com,接入CDN开始加速服务后,当终端用户在北京发起HTTP请求时,处理流程如下图所示。

  1. 当终端用户向www.aliyundoc.com下的指定资源发起请求时,首先向Local DNS(本地DNS)发起请求域名www.aliyundoc.com对应的IP。
  2. Local DNS检查缓存中是否有www.aliyundoc.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向网站授权DNS请求域名www.aliyundoc.com的解析记录。
  3. 当网站授权DNS解析www.aliyundoc.com后,返回域名的CNAME www.aliyundoc.com.example.com
  4. Local DNS向阿里云CDN的DNS调度系统请求域名www.aliyundoc.com.example.com的解析记录,阿里云CDN的DNS调度系统将为其分配最佳节点IP地址。
  5. Local DNS获取阿里云CDN的DNS调度系统返回的最佳节点IP地址。
  6. Local DNS将最佳节点IP地址返回给用户,用户获取到最佳节点IP地址。
  7. 用户向最佳节点IP地址发起对该资源的访问请求。
    • 如果该最佳节点已缓存该资源,则会将请求的资源直接返回给用户,此时请求结束。
    • 如果该最佳节点未缓存该资源或者缓存的资源已经失效,则节点将会向源站发起对该资源的请求。获取源站资源后结合用户自定义配置的缓存策略,将资源缓存到CDN节点并返回给用户,此时请求结束。

4. CDN 的几种托管方案

上一篇
下一篇