CDN

CDN是内容分发网络(Content Delivery Network),是旨在通过将内容更靠近用户的地理位置来提高网站和网络服务的访问速度和可靠性的一种分布式网络系统。它通过在多个地理位置分散的服务器上缓存内容(如网页、视频、图像等),来减少数据的传输时间和距离。

原理

  1. 用户通过浏览器请求一个资源,如在video.example.com上的一个视频a.avi。
  2. 浏览器向本地DNS查询video.example.com的IP地址。
  3. 本地DNS配置了video.example.com通过CNAME(Canonical Name)指向CDN提供者域名a-cdn.com。
  4. DNS查询发送到CDN域名所属DNS进行解释,这个DNS一般是个地理位置感知DNS(Geo DNS)。基于用户的地理位置,DNS服务器决定哪个CDN边缘服务器最接近用户,并返回其IP给浏览器。
  5. 浏览器向CDN边缘服务器发送资源请求。

CDN缓存刷新

CDN上的缓存刷新是一个关键过程,确保用户可以访问到最新的内容。CDN缓存可以被自动刷新,也可以通过手动操作进行刷新。

  • 自动刷新
    • 基于时间:TTL,定期检查
    • 基于事件:源服务器在内容更新后可以通过API调用或其他机制通知CDN
  • 手动刷新
    • 多数CDN服务提供了一个用户界面,让用户可以登录并手动刷新缓存。这通常涉及到选择需要刷新的内容或路径,并执行一个“清除缓存”的操作。

频繁刷新CDN缓存可能会增加对源服务器的负载,应当谨慎使用。