CDN 学习记录
# CDN
内容分发网络(Content Delivery Network,简称CDN)是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络,CDN分担源站压力,避免网络拥塞,确保在不同区域、不同场景下加速网站内容的分发,提高资源访问速度。
# 加速域名
加速域名即您需要使用CDN加速的域名。域名是一组服务器的地址,可以是网站、电子邮件、FTP等。在阿里云CDN帮助文档中,加速域名通常指域名。
# 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地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程自动进行。例如:您上网时输入的www.baidu.com会自动转换成为220.181.112.143。您可以使用阿里云云解析,也可以使用其他DNS服务商。
# SSL/TLS
SSL(Secure Sockets Layer,安全通讯协议),是一个架构于TCP之上的安全套接层。它可以有效协助Internet应用软件提升通讯时的资料完整性以及安全性。标准化之后的SSL名称改为TLS(Transport Layer Security,传输层安全协议),因此很多相关的文档将二者并称(SSL/TLS)。
# 边缘节点
在阿里云CDN的帮助文档中,边缘节点、CDN节点、Cache节点、缓存节点、加速节点、阿里云节点、节点等都指阿里云边缘节点。边缘节点是相对于网络的复杂结构而提出的一个概念,指与最终接入的用户之间具有较少中间环节的网络节点,对最终接入用户有相对于源站而言更好的响应能力和连接速度。其作用是将访问量较大的内容缓存到边缘节点的服务器上,以此来提高网终端用户访问网站内容的速度和质量。
# 源站
您实际业务的服务器。源站类型可以选择OSS域名、IP、源站或函数计算域名。
# 回源
CDN节点未缓存请求资源或缓存资源已到期时,回源站获取资源,返回给客户端。
例如:您访问某个URL时,如果解析到的CDN节点未缓存该资源,则您的访问请求会直接到源站获取资源,并根据URL请求返回给您。
回源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中不同参数代表相同的内容,建议开启过滤参数,有效提升缓存命中率。
# 工作原理
假设您的加速域名为www.a.com,接入CDN网络,开始使用加速服务后,当终端用户(北京)发起HTTP请求时,处理流程如下图所示。
- 1、当终端用户(北京)向www.a.com下的某资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。
- 2、LDNS检查缓存中是否有www.a.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。
- 3、当授权DNS解析www.a.com时,返回域名CNAME www.a.tbcdn.com对应IP地址。
- 4、域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。
- 5、LDNS获取DNS返回的解析IP地址。
- 6、用户获取解析IP地址。
- 7、用户向获取的IP地址发起对该资源的访问请求。
- 如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户,例如,图中步骤7和8,请求结束。
- 如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点,例如,图中的北京节点,并返回给用户,请求结束。配置缓存策略的操作方法,请参见缓存配置。