CDN全称Content Delivery Network,中文名称内容分发网络。名字看着偏技术,底层逻辑很好理解。可以类比线下开店,全部货物堆放在总仓库,全国买家下单都从总仓发货,远的地方等三天,近的一天。CDN相当于在各地搭建大量前置仓,提前把资源放到离用户更近的仓库,用户请求直接从就近节点分发,速度更快,总仓库压力也降低。
网站原理类似。源服务器托管在某个机房,广州用户访问,数据来回往返源站,链路节点越多延迟越高,网络拥堵还会排队。CDN的做法,是把网站静态资源,图片、CSS、JS、视频切片这类不常变动内容,缓存到遍布全国乃至全球的边缘节点。用户请求到达,调度系统识别用户所在城市、运营商,引导访问最近节点。节点存有缓存就直接返回资源,没有缓存才回源站拉取,拉取完成同步缓存,下一次访问就不用重复回源。

这套机制带来的好处不止加速。源站带宽压力大幅下降,大部分请求在边缘节点拦截,回源流量有时只占总请求百分之几。遇到突发流量,比如页面突然爆火,CDN分布式架构天然具备承载能力,不会瞬间打垮源站。CDN节点一般附带安全防护,DDoS流量会在边缘完成一部分清洗,Web应用防火墙还能拦截注入攻击、爬虫。现在很多企业采购CDN,除加速之外,也把它当作第一道安全防线。
CDN服务商分国内外两大阵营。国际上有老牌厂商和新兴巨头。Akamai是CDN行业鼻祖,九十年代末就开始布局,全球节点密度极高,大客户居多,定价偏高。Cloudflare免费套餐就能使用,抗DDoS能力强,大量中小站长、独立开发者选用,付费版功能更完善。AWS CloudFront深度绑定亚马逊云生态,已经使用AWS服务器和存储的用户接入比较方便。Fastly主打边缘计算,配置灵活,适合技术团队自主调整。Google Cloud CDN、Azure CDN分别属于谷歌云和微软云配套产品,使用同一家云厂商服务,搭配CDN会更省事。
国内市场格局不一样。阿里云CDN、腾讯云CDN市场份额最高,节点覆盖广,和自家云服务器、对象存储、负载均衡集成度高,控制台简单操作即可完成配置。百度智能云CDN在搜索、视频场景积累较多。网宿科技是国内老牌独立CDN厂商,不做云服务器业务,专注分发和边缘安全,大量传统企业、政企客户在用。白山云、七牛云、又拍云面向中小客户、开发者;七牛云擅长对象存储搭配CDN组合方案,又拍云在图片处理、视频加速有自身优势。UCloud、华为云同样提供CDN产品,大多和自家云产品打包销售。
挑选服务商,看几个实际维度。用户群体在国内优先国内厂商,节点覆盖更密集;面向海外用户选Cloudflare、Akamai这类全球节点多的服务商。业务类型是网站、视频还是下载,视频直播业务对CDN协议支持、转码能力要求更高,七牛、又拍、网宿有对应的专项方案。预算和团队能力也需要考量,Cloudflare免费套餐足够支撑小型站点;国内大厂CDN按流量计费,按需结算,要留意回源流量、HTTPS请求数产生的额外费用。还有一个容易忽略的点,国内CDN加速域名需要完成ICP备案,未备案域名只能使用香港或者海外节点,速度和稳定性会下降。
CDN本身并不复杂,本质就是把内容前置部署到靠近用户的节点,用空间换取访问速度。服务商之间差异集中在节点数量、调度算法、安全能力和计费模式。大厂胜在稳定、生态完善,中小型厂商优势是灵活、价格友好。理清用户地域、业务类型、预算,选型就不会难。