CDN系列学习文章(十)——业务接入CDN,需要注意什么

2019-06-27 19:10:22 浏览数 (1)

这个系列学习也要收尾了,先简单做一个小结。这个系列初衷让小伙伴更好的理解CDN业务逻辑,对其知其然,知其所以然。这个系列涵盖CDN常见原理、功能和常见问题。如果小伙伴对一下内容有些生疏,可以回顾之前章节。

  • 核心调度大脑。讲述DNS调度和302调度
  • 缓存机制。
  • 内容管理功能。讲述刷新和预热业务逻辑以及常见注意事项
  • CDN常见问题分析。命中率和回源失败率排查分析思路
  • 万恶的HTTP劫持介绍。

正式开始本文的重点,如何更好使用CDN呢?一方面,咱们充分了解业务,包含动静资源、加速区域、源站性能以及协议兼容性;另一个方面,CDN常规功能各家厂家都类似,但是具体实现还是有差异,所以需要花些时间了解对应服务商的CDN产品特性。下面分别从业务层面,源站层面以及腾讯云CDN产品特性来让小伙伴能好的使用云上产品。

1. 业务层面

  • 静态分离。静态资源才适合使用CDN资源。什么是静态资源?千人一面的资源就是静态资源,千人千面的资源就是动态资源。这里再次强调业务隔离,静态业务使用CDN产品,动态业务使用DSA产品。
  • 业务类型。腾讯云接入业务类型分为静态、下载、点播。对于不同业务,CDN提供不同的平台对其进行专项优化。
  • 加速区域。如果业务有海外访问的需求,建议开通海外加速。默认的加速地域是国内,也就说海外用户访问国内加速节点获取资源,会影响终端用户业务体验。

2. 配置层面

1)域名新增

  • 加速域名。控制台流程非常便捷,需要注意加速域名添加完成后在DNS修改CNAME解析记录。
  • 源站信息。注意源站和回源host区别。源站(源站服务器)是一个服务器IP地址,引导CDN节点回源找到源站服务器;回源host是源站服务器上的站点,一个源站服务器上可能存在很多站点。另外就是源站的域名需要与加速域名不一致。

2)回源配置

range回源,优点就是减少大文件回源分发,缩短响应时间,但是对源站本身有要求。

  • 该功能需要源站支持range以及range0-0请求
  • 源站Mtine(Last modify time)更新频率在1分钟内,可能会造成回源失败,导致重复回源。
  • 回源请求数会增加,需要合理评估源站qps性能。
  • 回源带宽会增加,range请求是并发的,需要合理评估源站出口带宽。

3)缓存配置

关于腾讯CDN缓存策略,这里提取一些注意事项,作为强调。具体详见官方的缓存说明(https://cloud.tencent.com/document/product/228/6290)

  • 缓存策略。优先级,当多条缓存策略有重复,底层缓存高于顶部;静态资源的缓存时间不要设置为0。
  • 高级缓存。主要是用来兼容源站maxage缓存策略。开启该功能注意两点:1)该资源的缓存时间取配置的过期时间与 max - age 中的最小值。2)如果源站没有返回Mtime,CDN回默认该头部,并且每10分钟更新一下时间。
  • 参数缓存。URL 中不同参数代表相同的资源,建议开启过滤参数,有效提升缓存命中率。
  • 缓存继承。对于源站cache-control遵循,如果cache-control没有字段,CDN节点回默认添加maxage=600.

3.源站层面

  • 非BGP出口。CDN上层节点集群有可能不是BGP出口,为了避免跨网回源失败的情况,建议源站为BGP出口。
  • HTTPS端口。已配置 HTTPS 协议回源跟随,https 请求仅支持 443 端口,源站配置为非 443 端口,会造成回源失败
  • 对HTTPS协议支持。https回源要求版本为TLSv1.0 TLSv1.1 TLSv1.2
  • 允许缓存(无no-cache)。如果源站存在no-cache头部,建议业务动静分离。
  • 源站响应存在特殊头部。如果源站存在特殊头部,建议在控制台开启缓存源站所有头部功能。
  • 源站性能和出口带宽。随着业务发展,建议及时扩容。
  • 源站是否有白名单。如果有的话,要添加CDN回源节点的IP地址。

4.流程层面

  • 正式业务切量前,务必灰度业务,尤其包含防盗链以及特殊配置的业务。

0 人点赞