跳至正文
中文
立即开始

CDN(内容分发网络)

CDN(内容分发网络)由一组分布式边缘服务器组成,可在更靠近用户的位置交付网站内容,减少延迟并降低源站服务器的负载。

文章目录(8 个章节)

CDN 的工作原理

浏览器请求页面时,DNS 通常会将请求导向 CDN,而不是直接发送到网站的源站服务器。CDN 会选择可用的边缘服务器,通常会考虑网络位置、服务器健康状况和当前流量。

浏览器  →  CDN 边缘节点  →  缓存响应
                       →  缓存未命中时访问源站服务器

边缘节点会根据缓存键查找缓存响应。缓存键通常以 URL 为基础,有时也会包含特定标头、Cookie 或查询参数。缓存命中时,边缘节点会直接返回响应;缓存未命中时,则向源站请求内容,将内容发送给浏览器,并可能保存副本。Cache-Control、Expires 和 Vary 等标头可用于控制内容的缓存时长和缓存条件。

CDN 的作用

  • **缩短交付路径:**附近的边缘服务器可以降低图片、脚本、样式表和视频的延迟。
  • **减轻源站负担:**缓存响应可避免源站处理每个请求。
  • **应对流量高峰:**CDN 可以将客户端流量分散到多个边缘服务器,并承接可缓存请求。源站能否得到保护仍取决于缓存策略和源站架构,因为缓存未命中和动态请求仍可能到达源站。
  • **执行请求控制:**许多 CDN 提供 DDoS 过滤、Web 应用防火墙和限速。

动态或个性化响应通常会转发到源站,但 CDN 仍可优化路由和连接。

CDN 与反向代理的区别

CDN 通常会在分布于不同地区的边缘节点使用反向代理,但两者并不等同。反向代理是处理流量的组件,CDN 则是分布式内容交付系统。

对比项 CDN 反向代理
部署方式 分布于多地的边缘节点 单点或分布式部署
主要用途 跨地区交付内容 管理入站流量
缓存 通常是核心功能 可选功能

CDN 如何影响代理流量

CDN 看到的是代理的出口 IP,而不是直接连接时使用的 IP。CDN 可能根据 IP 地理定位选择边缘节点或提供特定地区的内容。因此,两个代理访问同一个 URL 时,可能会连接到不同的边缘缓存,或收到不同的本地化页面。

403 响应或 429 响应可能来自 CDN 或其防火墙。502 或 504 则可能表示边缘节点未能及时从源站获得有效响应。采集公开数据时,应遵守网站条款和 robots.txt,降低请求频率,并按 Retry-After 的要求操作,不要通过轮换 IP 规避控制措施。

常见问题

CDN 和反向代理一样吗?

不一样。CDN 通常会在分布于不同地区的边缘节点使用反向代理,但两者并不等同。反向代理是处理流量的组件,CDN 则是分布式内容交付系统。

代理能绕过 CDN 缓存吗?

不能,至少无法可靠绕过。更换代理 IP 可能会将请求导向另一个边缘节点,但是否返回缓存内容或联系源站,仍由网站的 CDN 规则决定。

CDN 为什么会返回 403 或 429?

403 表示 CDN、其防火墙或网站拒绝了请求。429 表示触发了限速,此时应降低请求频率,并遵循 Retry-After 标头的要求。

相关术语

查看全部术语