CDN原理
CDN(Content Delivery Network, 内容分发网络), 将源站的内容发布到接近用户的网络'边缘', 用户就可以就近获取所需数据, 不仅降低了网络的拥塞情况, 提高请求的响应速度, 也能够减少源站的负载压力.
简单的CDN流程
一个最简单的CDN网络由一个DNS服务器和几台缓存服务器组成:
- 当用户点击网站页面上的内容URL, 经过本地DNS系统解析,
DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器 - CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户
- 用户向CDN的全局负载均衡设备发起内容URL的访问请求
- CDN全局负载均衡设备根据用户IP地址, 以及用户请求的内容URL, 选择一台用户所属区域的区域负载均衡设备, 告诉用户向这台设备发起请求.
- 区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务. 选择的依据包括:
- 根据用户IP地址, 判断那一台服务器距离用户最近
- 根据用户所请求的URL中携带的内容名称, 判断那一台服务器上有用户所需内容;
- 查询各个服务器当前的负载情况, 判断那一台服务器还有服务能力
- 基于以上这些条件的综合分析, 区域负载均衡设备会想全局负载均衡设备返回一台缓存服务器的IP地址.
- 全局负载均衡设备把缓存服务器的IP地址返回给用户
- 用户向缓存服务器发起请求, 缓存服务器响应用户请求, 将用户所需内容传送到用户终端
- 如果这台缓存服务器上没有用户想要的内容, 而区域均衡设备依然将它分配给了用户, 那么这台服务器就要向上一级缓存服务器请求内容, 直至追溯到网站的源服务器, 将内容拉倒本地.

CDN 关键组件
LVS: 四层均衡负载
- DR模式
- 双LVS做 Active-Active 互备
- 均衡算法采用 wrr
Tengine: 七层负载均衡
阿里的基于Nginx开发的高性能HTTP服务器.
- 主动健康检查
- SPDY v3 支持
Swift: HTTP 缓存
- 高性能Cache
- 磁盘(SSD/SATA)
CDN 优点
- 加速网站的访问
- 实现跨运营商, 跨地域的全网覆盖
- 保障网站安全
- 异地备援
- 解决成本投入
- 专注业务本省
应用场景
- 网站/应用加速
- 视音频点播/大文件分发加速
- 视频直播加速
- 移动应用分发加速
常见名词
- Origin Server 源站: 做CDN之前的客户真正的服务器
- Last Mile: 最后一公里, 也就是用户到他所访问的CDN服务器之间的路径
- 域名: internet 网络上的一个服务器或一个网络系统的名称
- CNAME记录: Canonical Name, 当DNS系统在查询CANME左面的名称的时候, 都会转向CNAME右面的名称再进行查询, 一直追踪到最后的PTR或者A名称, 成功查询后才会做出回应, 否则失败
- CNAME域名: CDN的域名加速需要用到CNAME记录.
- DNS: 域名解析服务
- 边缘节点: CDN节点, Cache节点, 是相对于网络复杂结构的一个概念, 指距离最终用户接入具有较少中间环节的网络节点, 对最终接入用户有较好的响应能力和连接速度.
- cache: 高速缓冲存储器, 一种特殊的存储器子系统, 其中复制了频繁使用的数据以利于卡US就访问.