← 返回题目列表

CDN 的工作原理是什么?和 DNS 有什么关系?

高频 中等 第 9 / 27 题 更新于 2026/07/28
CDNDNS边缘节点缓存加速

简化版

CDN(内容分发网络)把网站的静态资源缓存到全国/全球各地的边缘节点上,让用户从离自己最近的节点获取内容,从而降低延迟、加快访问、给源站减负。它和 DNS 的关系是:CDN 靠 DNS 来「就近调度」——你把域名 CNAME 到 CDN,CDN 的智能 DNS 会根据你的位置,返回最近边缘节点的 IP。

详细版

CDN 解决的问题:用户离源站远 → 延迟高、慢。CDN 在各地部署边缘节点,把内容(图片、CSS、JS、视频等)缓存到这些节点,用户就近访问。

接入与调度流程

  1. 接入:把你的域名(如 img.example.com)用 CNAME 指向 CDN 提供的域名(如 img.example.com.cdn.com);
  2. 调度:用户访问时,DNS 解析走到 CDN 的智能 DNS(GSLB,全局负载均衡),它根据用户的地理位置、网络、节点负载,返回一个最优边缘节点的 IP
  3. 命中:用户请求就近的边缘节点:
    • 节点有缓存 → 直接返回(快);
    • 节点没缓存 → 回源站拉取,缓存到本地后返回,下次就近命中。

所以 CDN = 就近的边缘缓存 + 基于 DNS 的智能调度

完整版教学

一、CDN 的核心思想:把内容搬到离用户近的地方

访问慢的一个主要原因是物理距离远——用户在广州,源站在北京,数据要跨越大半个中国,延迟高、还容易受中间网络拥塞影响。

CDN 的思路很朴素:与其让用户长途访问源站,不如把内容提前复制一份放到离用户近的地方。它在全国/全球各地部署大量边缘节点,把静态资源缓存上去,用户就近取,延迟自然低。这和「就近开分店,别让顾客都跑总部」是一个道理。

二、CDN 怎么知道该把用户引到哪个节点——靠 DNS

CDN 的「就近调度」不是魔法,正是借助 DNS 实现的,这是它和 DNS 关系的核心:

  1. 你把域名 CNAME 到 CDN 的域名——于是解析这个域名时,控制权就交到了 CDN 的智能 DNS 手里;
  2. CDN 的智能 DNS(GSLB)在收到解析请求时,能看到发起解析的本地 DNS 的位置,据此判断用户大概在哪;
  3. 它综合地理位置、运营商、各节点负载和健康状况,动态返回一个最优边缘节点的 IP
  4. 用户于是连到了离自己最近、最通畅的节点。

所以普通 DNS 是「域名→固定 IP」,而 CDN 的智能 DNS 是「域名→因人而异、动态选择的最优节点 IP」。DNS 在这里从「查地址」升级成了「智能调度」。

三、回源与缓存命中

边缘节点是缓存,不是内容的原始来源。请求到边缘节点时:

  • 缓存命中:节点本地有这份资源且未过期 → 直接返回,最快;
  • 缓存未命中:节点回源(去源站拉取)→ 拿到后缓存在本地 + 返回给用户 → 后续同样的请求就近命中。

所以第一个访问某资源的用户会稍慢(要回源),之后大家都享受就近缓存。CDN 通过缓存把绝大部分请求挡在边缘、不打到源站,既加速又给源站大幅减负——这也是 CDN 能扛住流量洪峰(如大促、热点事件)的原因。

四、CDN 适合缓存什么

  • 最适合:静态资源——图片、视频、CSS、JS、字体、下载文件。这些内容不常变,缓存收益最大。
  • 动态内容:个性化、实时变化的内容(如用户订单页)不适合直接缓存,但可用动态加速(优化回源链路、就近接入)等技术改善。

实践中常把静态资源放独立域名走 CDN,动态请求走源站,动静分离。

五、常见误区

  • ❌ 以为 CDN 和 DNS 无关——CDN 的就近调度正是靠 DNS(CNAME + 智能 DNS/GSLB)实现的。
  • ❌ 以为 CDN 存的是「原始内容」——边缘节点是缓存,未命中要回源。
  • ❌ 以为 CDN 能缓存一切——最适合静态资源,动态个性化内容需另做处理。
  • ❌ 以为接了 CDN 源站就没压力——首次回源、缓存过期回源仍会打到源站,要合理设缓存策略。

六、常见误区与追问

考点正确口径
调度入口DNS、HTTPDNS 或 Anycast 把用户引到合适节点
缓存节点命中则边缘直接返回,未命中再回源
优化目标降低 RTT、减少源站压力、提高可用性
user -> DNS/CDN scheduler
     -> edge node near user
cache hit  -> return object
cache miss -> origin fetch -> cache -> return

CDN 的核心不是“多放几台机器”,而是调度到近处并把热点内容缓存在边缘。

  • 误区:CDN 只对图片有用。 静态文件、下载、视频分片、API 加速和动态加速都可能使用 CDN,只是缓存策略不同。
  • 误区:CDN 命中后还会打到源站。 缓存命中通常由边缘节点直接返回,源站不会承受这次请求。
  • 误区:TTL 越长越好。 TTL 长能提高命中率,但内容更新变慢;需要结合文件 hash、刷新和预热策略。
  • 追问:回源是什么意思? 边缘节点没有缓存或缓存过期时,到源站取资源并按策略保存。
  • 追问:CDN 如何选择节点? 常综合用户 IP、运营商、地理位置、节点负载、健康状态和链路质量。
  • 追问:动态接口能不能 CDN 加速? 能做传输层和链路优化,但不可随便缓存个性化响应,必须按业务控制缓存键和权限。

七、加强记忆

CDN 把静态资源缓存到各地边缘节点,让用户就近访问、降延迟、给源站减负。它和 DNS 的关系是核心:域名 CNAME 到 CDN 后,由 CDN 的智能 DNS(GSLB)根据用户位置/负载动态返回最近边缘节点的 IP——DNS 从「查固定地址」变成「智能就近调度」。边缘节点是缓存,未命中回源,最适合缓存静态资源。