什么是内容分发网络(CDN)?
一个全球分布式服务器网络,能让用户更快速地访问网站。
什么是内容分发网络(CDN)?
CDN(内容分发网络,Content Delivery Network)是一个地理上分布式、相互连接的服务器网络,协同工作以更快地传输加载内容所需的各类资源,例如 HTML 页面、图片、视频与 JavaScript 文件。
CDN 又称内容分发网络(Content Distribution Networks),它在战略位置布局的数据中心部署大量中间服务器,用于存储与分发缓存内容。其核心目标是缩短网站“源站”服务器与终端用户之间的物理距离。
以下是 CDN 实际运行的示例:
假设某网站的源站服务器位于日本。若一位欧盟用户想要访问它,CDN 就会通过位于欧盟的边缘服务器为其提供服务。内容从物理上更接近用户的代理服务器分发,而非来自位于日本的“源站服务器”。
内容分发网络最早于上世纪 90 年代末问世,其“演进”大致可分为三个截然不同的世代:
- 第一代(静态 CDN),1997 年发布
- 第二代(动态 CDN),2001 年发布
- 第三代(多用途 CDN),2010 年发布
如今提供 CDN 解决方案的领先厂商包括 CloudFlare、Akamai、CDN77 与 Amazon CloudFront 等。
CDN 是如何工作的?
用户在没有 CDN 的情况下访问网站时,浏览器会连接到该网站的源站服务器并请求内容。
有了 CDN 后,浏览器会向其中一台“边缘服务器”请求内容,通常是离用户最近的那一台。随后边缘服务器把请求转发给源站服务器,并在收到数据、交付给用户之后,把文件缓存起来供后续所有请求使用。
CDN 会在全球多个地理位置(称为“接入点”,Points of Presence,简称 PoP)存储内容的缓存版本。每个 PoP 都包含若干代理服务器,负责与附近区域的用户通信,缩短内容到达他们所需的传输距离。
用户访问某个网站时,CDN 可动态计算哪台边缘服务器离他们最近,并据此分发内容。
为什么 CDN 很重要?
内容分发网络的主要作用,是通过确保内容从离终端用户更近的边缘服务器分发,来缩短网站加载时间。不过,改善用户体验虽重要,却并非使用 CDN 的唯一好处。
CDN 在负载均衡方面也发挥重要作用。假设某网站的流量突然激增,CDN 能帮助把请求分摊到多台服务器上,避免某台服务器过载或影响网站性能。
此外还有可用性的提升:
即使源站服务器崩溃,CDN 也会继续从可用的边缘服务器之一提供缓存内容,确保服务不中断。
最后,CDN 在提升网站安全方面也发挥作用:
内容分发网络应对流量激增的同一套机制,使其能够抵御某些网络安全威胁,包括分布式拒绝服务(DDoS)攻击。
更进一步,CDN 还能通过 Web 应用防火墙(WAF)保护网站。它分析并疏导进出网站的流量,逐一检查每个 HTTP 请求并拦截可疑流量,从而防范跨站脚本(XSS)与 SQL 注入等威胁。
使用 CDN 会影响你的 SEO 吗?
理解 CDN 有一定难度,因为它需要一定技术知识。正因如此,人们对它存在一些误解,其中之一就是 CDN 对 SEO 的影响。
一般来说,使用 CDN 不会影响网站排名。不过,CDN 确实能改善网站性能,主要是加载速度,进而改善用户体验,并带来更好的 核心网页指标(Core Web Vitals)得分。
也曾有人担心,把图片托管在 CDN 域名(而非网站自有域名)上,可能损害图片在自然搜索结果中的排名。
不过,这一说法已被证伪:
从 Google 代表目前所说的情况来看,是否使用同一域名托管图片,在 SEO 上并无区别,也不会影响这些图片的排名。把图片托管在同一域名下的唯一好处,是让切换 CDN 的过程更简单。
常见问题解答(FAQ)
CDN 与 DNS 有何区别?
DNS 全称是域名系统(Domain Name System),是把域名转换为 IP 地址(Internet Protocol address)的系统,让用户无需记住 IP 地址就能访问网站。若浏览器请求的域名由内容分发网络(CDN)管理,DNS 服务器就会根据 IP 地址确定由哪些边缘服务器处理该请求最合适。
什么是 CDN 服务器?
CDN 服务器是内容分发网络内部的中间服务器,负责存储与分发缓存内容,并缩短内容与终端用户之间的距离。