Skip to content

CDN

CDN (内容分发网络)是一种分布式系统,由一系列位于不同地理位置的服务器节点组成。这些节点被称为边缘服务器,它们位于网络的边缘,靠近最终用户。CDN 的基本思想是将内容存储在靠近用户的边缘服务器上,当用户请求访问内容时,由最接近用户的边缘服务器提供内容,而不是从远程的源服务器获取。

概念

缓存

当源服务器首次响应请求时,CDN 会将内容缓存到边缘服务器上。用户在后续请求时(其他用户访问相同资源)CDN 会直接从边缘服务器提供缓存的副本,而不必再次向源服务器发出请求。

回源

边缘服务器从源服务器获取最新的内容被称为回源,常见的有几种情况

  1. 当边缘服务器上的缓存内容过期或不存在时
  2. 设置回源间隔,定期向源服务器发送请求以检查内容是否有更新
  3. 源服务器的资源更新后,调用 CDN 提供商的 API,是 CDN 服务器回源拉取新资源

解决了什么问题

  • 降低源服务器的请求压力。
  • 根据用户 ip 选取较近的边缘服务器,通过减少传输距离,实现降低网络延迟。
  • 在请求时,浏览器会将域名下的所有 Cookie 携带发起请求,但是一般静态资源是不需要 Cookie 的,因此可以把 CDN 的域名和主站的域名分开,减少请求体积。

动态加速

传统的 CDN 主要用于加速静态内容,对于动态生成的内容并不适用。这时就需要使用 CDN 中的动态加速功能。

边缘计算(Edge Computing)

CDN 提供商在其边缘服务器上部署了计算资源,使得动态内容可以在边缘服务器上进行实时计算和处理。这样可以减少请求的往返时间,并加速内容的生成和响应。

动态路由

  • 直接连接到源服务器可能会导致网络拥塞和负载不均衡的问题。通过动态路由,CDN 可以根据网络状况和服务器负载情况,将请求分配到合适的服务器上。
  • 因为服务器的带宽是很高的,因此节点间的传输效率远高于边缘到用户,因此可以通过 CDN 请求服务器从而更高效。

参考