一、CDN 基本概念
CDN(Content Delivery Network,内容分发网络) 是一种通过在全球部署边缘节点,利用全局负载调度机制将内容就近分发给用户,从而加速互联网访问的服务。
核心目标:降低网络延迟、减少源站压力、提升用户访问体验。
DNS

DNS 解析策略
常见的 DNS 解析策略包括:
-
轮询(Round Robin):DNS 服务器按顺序返回多个IP地址,实现请求的轮流分发到不同的服务器上。
-
权重(Weighted):为每个 IP 地址分配不同的权重,权重越高的服务器被选中的概率越大。
-
响应时间(Response Time):DNS 服务器可以通过测量服务器的响应时间来选择最快的服务器,将域名解析为对应的 IP 地址。
各个 DNS 解析产品可能采用的解析策略不一样,以 DNSPod 解析为例,他采用的就是权重 + 随机的策略
但基于 DNS 的负载均衡同样也存在一些弊端:
-
目前的 DNS 系统是需要经过递归服务器、顶级服务器、权威服务器以及众多缓存等多级解析的,在每一个环节都可能存在解析记录缓存。如果服务器 IP 发生变动,即使修改了 A 记录,也需要各级缓存失效后才能生效。而在解析生效前的这段时间,用户可能就会根据缓存记录访问到已经被更换过的服务器上,从而导致访问失败。
-
为了本地 DNS 服务器能够及时同步权威服务器上的最新记录,所以一般将 DNS 缓存刷新时间设置得比较小,这就会导致 DNS 频繁发起解析请求,从而造成额外的网络问题。
-
DNS 本身并不具备主动监测服务器负载情况或动态调整权重的能力,不能区分不同服务器之间的性能和负载差异,不能反映服务器当前的运行状态,所以一些大型网站总是使用 DNS 域名解析作为第一级负载均衡手段,然后在通过负载均衡服务器提供更高级的负载均衡算法(比如最少连接:将请求发送到拥有最少开放连接的服务器),从而完成最终请求。
二、CDN 演进历程
| 版本 | 时间 | 业务对象 | 核心能力 |
|---|---|---|---|
| 第一代(Web加速) | 1998-2005 | 静态 Web 内容(图片、CSS、JS) | 主要缓存静态文件,减轻源站带宽压力 |
| 第二代(流媒体分发) | 2005-2010 | 视频、音频等大文件 | 支持大规模媒体流分发,引入分片和渐进式下载 |
| 第三代(P2P 融合) | 2008-2015 | 大文件/热点内容 | 与 P2P 技术结合,利用用户侧带宽降低源站负载 |
| 第四代(云原生 CDN) | 2013-至今 | 全类型内容(含动态加速) | 与云计算深度融合,支持边缘计算、Serverless、动态请求加速 |
三、CDN 的核心特点
-
分布式节点部署 – 内容分布在多个地理位置的节点上
-
智能流量调度 – 通过 DNS 解析或 HTTP 重定向将用户导向最优节点
-
内容缓存与刷新 – 节点缓存内容,支持预热和刷新机制
-
全局管理能力 – 包含负载均衡、内容管理和监控运维
四、CDN 的三大组成部分
| 组成部分 | 对应平面 | 功能说明 |
|---|---|---|
| 内容路由系统 | 控制平面 | 负责将用户请求调度到最优节点 |
| 内容分发/管理系统 | 管理平面 | 负责内容从源站到边缘节点的分发、同步、更新和过期管理 |
| Cache 节点网络 | 数据平面 | 实际存储和响应内容的缓存服务器集群,构成CDN的物理基础设施 |

五、CDN 基本原理(核心流程)
CDN 的核心思想是在用户和源服务器之间增加一层缓存层,通过接管 DNS 解析将用户请求引导到最近的缓存节点。
完整访问流程如下:
| 步骤 | 动作描述 |
|---|---|
| ① | 用户在浏览器中输入要访问的域名(如 www.example.com) |
| ② | 浏览器发起 DNS 解析请求。由于 CDN 服务商在权威 DNS 上配置了策略,DNS 解析返回该域名的 CNAME 记录,指向 CDN 厂商的专用域名(如 www.example.com.cdn.dnsv1.com) |
| ③ | 浏览器对 CNAME 域名再次发起 DNS 解析。CDN 厂商的 DNS 服务器根据用户 IP 所在地理位置、节点负载等因素,返回最优 CDN 边缘节点的 IP 地址 |
| ④ | 浏览器向该 CDN 缓存服务器发起 HTTP/HTTPS 请求 |
| ⑤ | 缓存服务器检查本地是否有该内容的有效缓存: • 命中缓存 → 直接返回内容给客户端(流程结束) • 未命中 → 缓存服务器通过内部 DNS 或配置获取源站真实 IP,向源站发起回源请求 |
| ⑥ | 源站返回内容给缓存服务器,缓存服务器本地存储一份(根据Cache-Control等头信息决定缓存时长),同时将数据返回给客户端 |
| ⑦ | 客户端收到数据并渲染展示,完成整个请求过程 |

六、DNS 解析策略
常见的 DNS 负载均衡策略
| 策略类型 | 说明 |
|---|---|
| 轮询(Round Robin) | 按顺序轮流返回多个 IP |
| 加权轮询 | 按设定的权重比例分配流量 |
| 地理位置(GeoDNS) | 根据用户 Local DNS 的 IP 归属地返回最近的节点 |
| 基于延迟/负载 | 通过探测节点健康度和响应时间,返回最优节点 |
| 权重 + 随机(如 DNSPod) | 在权重基础上引入随机因子,避免同一节点过热 |
基于 DNS 的负载均衡的弊端
| 弊端 | 说明 |
|---|---|
| DNS 缓存滞后 | 运营商 Local DNS 和浏览器都有缓存,节点切换后用户可能持续访问旧节点 |
| 无法实时感知节点健康 | DNS 不主动探测节点是否宕机或过载,可能将流量调度到故障节点 |
| 调度粒度粗 | 调度依据是 Local DNS 的 IP,而非真实用户的 IP,可能导致调度不精准 |
| TTL 更新延迟 | 修改 DNS 记录后,需等待 TTL 时间才能全网生效,无法秒级切换 |
七、CDN 与 Nginx 的关系
CDN 缓存
CDN 的核心能力之一是在边缘节点上缓存内容,减少回源请求,降低源站压力。

Nginx 层缓存
Nginx 作为反向代理服务器,也可以在其自身层面开启缓存(proxy_cache)。在架构中常形成多层缓存体系:

text
用户 → CDN边缘节点(L1缓存)→ Nginx反向代理(L2缓存)→ 源站
八、进阶概念
1. 图像 CDN(Image CDN)
-
专门用于实时转换、优化和分发图像的服务
-
提供 API 方式指定尺寸、格式(WebP/AVIF)、质量、裁剪模式等参数
-
可为不同设备(移动端/桌面端/Retina屏)动态生成适配版本
-
典型厂商:Imgix、Cloudinary、Akamai Image Manager
2. vCDN(虚拟化 CDN)
-
将 CDN 软件与底层硬件解耦,支持在物理机、虚拟机、容器等多种环境运行
-
可在 MEC(多接入边缘计算) 平台或网络边缘站点部署
-
相比传统硬件绑定的 CDN,更具灵活性、弹性扩缩容能力
-
典型应用场景:5G 边缘计算、运营商网络边缘节点
九、完整请求链路图(文字版)
text
用户浏览器
│
▼(①输入域名 www.example.com)
DNS 解析(②返回 CNAME → cdn.example.com)
│
▼(③解析 CNAME,返回就近边缘节点 IP)
CDN 边缘节点(负载均衡 + 缓存服务器)
│
├── ④ 命中缓存 ──► 直接返回内容 ──► 用户
│
└── ⑤ 未命中 ──► 回源请求源站
│
▼
源站服务器(⑥返回内容)
│
▼
缓存节点存储一份(⑦同时返回用户)
311

被折叠的 条评论
为什么被折叠?



