内容分发网络CDN

CDN

将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。

相关名词

加速域名

加速域名即需要使用CDN加速的域名。域名是一组服务器的地址,可以是网站、电子邮件、FTP等。

源站

实际业务的服务器。源站类型可以选择OSS域名、IP或源站域名。

CNAME记录

CNAME (Canonical Name) 即别名,用来把一个域名解析到另一个域名,再由另一个域名提供IP地址。

例如:你有一台服务器上存放了很多资料,你使用docs.example.com访问这些资源,但又希望通过documents.example.com也能访问。那么你可以在你的DNS解析服务商添加一条CNAME记录,将documents.example.com指向docs.example.com。添加该条CNAME记录后,所有访问documents.example.com的请求都会被转到docs.example.com,获得相同的内容。

CNAME域名

接入CDN,在阿里云控制台添加加速域名后,阿里云CDN将分配一个CNAME域名。该CNAME域名的形式为*.*kunlun*.com。 需要在 DNS 解析服务商添加一条 CNAME 记录,将自己的加速域名指向*.*kunlun*.com 的域名。记录生效后,域名解析的工作就正式转向 CDN 服务,该域名所有的请求都将转向 CDN 节点,达到加速效果。

DNS

DNS (Domain Name System),即域名解析服务。

DNS 的作用:把域名转换成为网络可以识别的 IP 地址。人们习惯记忆域名,但机器间互相只识别 IP 地址。域名与 IP 地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程自动进行。

SSL/TLS

SSL (Secure Sockets Layer,安全通讯协定 ),是一个架构于 TCP 之上的安全套接层。它可以有效协助Internet 应用软件提升通讯时的资料完整性以及安全性。标准化之后的 SSL 名称改为 TLS (Transport Layer Security,传输层安全协议 ),因此很多相关的文章将二者并称 (SSL/TLS)。

边缘节点

边缘节点是相对于网络的复杂结构而提出的一个概念,指与最终接入的用户之间具有较少中间环节的网络节点,对最终接入用户有相对于源站而言更好的响应能力和连接速度。

作用是将访问量较大的内容缓存到边缘节点的服务器上,以此来提高网终端用户访问网站内容的速度和质量。

回源 HOST

源站决定了回源时,请求到哪个 IP。回源 HOST 决定回源请求访问到该 IP 上的哪个站点。

例1:源站是域名。
源站为 www.a.com,回源 HOST 为 www.b.com,那么实际回源是请求到 www.a.com 解析到的 IP,即对应的主机上的站点 www.b.com

例2:源站是 IP。
源站为 1.1.1.1,回源 HOST 为 www.b.com,那么实际回源的是 1.1.1.1 对应的主机上的站点 www.b.com

协议回源

指回源时使用的协议和客户端访问资源时的协议保持一致.

即如果客户端使用 HTTPS 方式请求资源,当 CDN 节点上未缓存该资源时,节点会使用相同的 HTTPS 方式回源获取资源。同理,如果客户端使用 HTTP 协议的请求,CDN 节点回源时也使用 HTTP 协议。

过滤参数

借助过滤参数开关,可以根据实际业务需要,决定在缓存时是否过滤用户请求URL中“?”之后的参数。

如果开启过滤参数,则 CDN 节点会截取没有参数的 URL 向源站请求,且 CDN 节点仅保留一份副本。
如果关闭过滤参数,则每个不同的 URL 会缓存不同的副本在 CDN 的节点上。
若资源 URL 中不同参数代表相同的内容,建议开启过滤参数,有效提升缓存命中率。

CDN 缓存命中率

概念

CDN 缓存命中率包括字节缓存命中率请求缓存命中率

字节缓存命中率 = CDN 缓存命中响应的字节数 / CDN 所有请求响应的字节数
请求缓存命中率 = CDN 缓存命中的请求数 / CDN 所有的请求数

优化 CDN 缓存命中率

预热URL

影响因素:

  • 当业务高峰期时,源站压力大,导致 CDN 缓存命中率低。
  • 当 CDN 加速域名流量较低时,可能提前从 CDN 节点的缓存中清除,导致 CDN 缓存命中率低。

背景信息:
CDN 节点作为所有使用 CDN 的用户公用的节点资源,因此 CDN 配置的缓存规则表示了该资源在 CDN 上的缓存最长时间,如果你的 CDN 加速域名流量较低,则可能提前从 CDN 节点的缓存中清除。即缓存按照热度属性采取末尾淘汰制。热度是指文件在节点上被访问的频率,文件热度不够,被提前剔除。

策略:
可以在业务高峰前预热热门资源,也可以预热流量较低的加速域名,再次访问该资源时,直接从CDN节点获取,从而提升CDN的缓存命中率。

配置资源缓存规则

影响因素:当静态资源未返回响应头 Etag 或 Last-modified 时,缓存失败,导致 CDN 缓存命中率低。

过滤 URL 中可变参数

影响因素:当 URL 请求中带有 queryString 或其他可变参数时,资源重新回源时,导致 CDN 缓存命中率降低。

CDN 加速 OSS 架构

适用场景

  • 静态文件访问量大,服务器负载高,I/O问题导致用户访问卡顿。
  • 静态文件数量大,服务器存储空间不够。
  • 静态文件用户访问量大,且分布在各地。
  • 移动更新包在某个时间段需要高速下载,且并发下载量高。

架构描述

OSS 作为海量文件存储源,静态图片、视频文件、下载包、app 更新包等均放在 OSS 上。OSS 作为 CDN 的源站,通过 CDN 加速分发,用户通过 CDN 节点就近获得文件。架构优势:

  • 降低 Web 服务器负载,静态文件访问负载全部通过 CDN。
  • 存储费用最低,OSS 的存储费用仅为 ECS 磁盘费用的 50%。
  • 海量存储空间,无需考虑存储架构升级。
  • 流量费用低,相比直接通过 OSS 访问,除极少额外增加的回源流量外,主要流量使用 CDN 流量,单价远远低于 OSS 直接访问的外网流量单价。

相关链接

What Is a CDN?
Content delivery network