说说CDN

相关名词

  • CDN(Content Delivery Network)(内容分发网络):提供内容给用户就近访问

CDN域名解析流程

  • 浏览器发起HTTP请求到本地DNS服务器,本地DNS服务器使用CNAME的方式,将资源域名重定向到CDN服务
  1. 用户机器(比如浏览器)-> LocalDNS
  2. LocalDNS -> 域名授权DNS服务 (返回域名CNAME)
  3. LocalDNS -> 请求CNAME域名(重新走域名解析流程,DNS根服务器,域服务器等)(返回CNAME对应的ip)
  4. LocalDNS -> CNAME对应的CDN服务器(CDN策略,查找出最佳的CDN节点的IP地址)
  5. LocalDNS返回CDN节点IP地址给浏览器
  6. 用户机器(比如浏览器)-> CDN节点(若无缓存)
  7. CDN节点 -> 回源服务器拉取资源 (可选)
  • 添加CNAME记录需要在您的域名厂商处配置;CNAME的配置和域名的解析配置一起的

Q&A

服务接口的数据可以使用CDN来缓存?

  • CDN不仅可以缓存静态资源(图片,视频等),对于一些数据变更不大的接口,可以适当缓存接口数据。比如配置,利用CDN缓存几分钟是合理的。

不能缓存数据的接口,可以使用CDN吗?

  • 结论:可以使用CDN,但注意GET接口响应头设置为不缓存(比如设置 Cache-Control:no-cache)
  1. 通过CDN加速回源效果(使用CDN快速传输的特性)
    • 比如一般情况下,用户访问通过普通公网,需要经过20个路由才到达服务器
    • 使用CDN加速后,通过5CDN节点就到达服务器了(这里涉及服务器端在CDN的接入点、用户端CDN部署的覆盖范围是否足够大)
  2. 使用CDN隐藏服务器真实IP,起到提升安全性等作用

Reference