什么是CDN
内容分发网路(Content Delivery Network,CDN)
从1998年至今20几年,其实它并不是个新颖的技术,但在不断的创新改进后,已成为现在网路服务中不可或缺重要环节。
服务供应商在全球分布不同地区的数据中心伺服器组成一个大型网路环境,让全球访问网站的使用者能体验最快速的服务。
其原理对内容来源进行缓存(cache)的动作,并利用在全球分布节点POP(数据中心伺服器)将游览者第一次访问的内容同时复制一份在离游览者访问地区最近的POP节点,当该地区有其他游览者访问时就会由最近的POP提供内容,以此达到快速响应。
例如:以前买民生用品可能需要前往离家较远的大卖场购买,由于现在便利商店商品越渐多样化,许多民生需求已不须特地前访大卖场,所有购买者都可以就近在离家最近的便利商店采买,这样的概念就像是CDN带给最终用户的体验。
CDN示意图

CDN解决方案
整体CDN能解决什么问题:
- 根据访问者地理位置提供最近的服务内容,减少游览网站整体下载、读取的延迟时间
- 防止因高访问及高频宽造成伺服器负载瓶颈
- 持续可用性,不会因一个CDN节点出现问题导致服务不可用
- 降低网站伺服器乘载浏览人数过多的负担,适合高流量网站
- 降低网路成本,通常CDN流量价格比主机网路流量价格低
- 保护原始网站IP,降低被网路攻击全面瘫痪的风险

如何选择适合的CDN?
由于提供CDN服务的是服务供应商在全球布署的数据中心节点,因此在选择CDN服务时也必须注意CDN供应商提供的CDN节点数是不是充足,各家CDN除了各自功能差异外,也存在着提供地区节点上的不同,在选择CDN时将考量最终的访问者来至那些地区。
CDN的衡量指标:
随着市场竞争,各个云端平台皆推出自家内容分发传递服务,除了各自拥有的快取节点地理位置不同、功能面的差异性不同之外,选择上优先需要考量最基础的几项指标为下:
Delay Time:
发送到快取节点请求,以及返回用户数据的来回时间,越低的Latency(延迟),代表性能越好。
Download Speed:
从快取节点上下载的网页数据时的速度,下载速度越快,代表性能越佳。
Page Speed:
打开网站的载入速度,一个基本的网站可能包含有多个html、css、js等档案内容,打开速度越快性能越好。
Packet Loss Rate:
与快取节点网络传输中,所遗失的数据包数量占所发送数据组的比率。
Return-to-origin Rate:
回源率分为以下两种:
- 回源请求数比:指边缘节点对于没有缓存、缓存过期和不可缓存的请求占全部请求记录的比例。越低则性能越好。
- 回源流量比:回源流量是回源请求的流量和总请求产生的流量的比例,通常以静态内容来说回源流量越低越好。
Cache Hit Rate:
用户访问已缓存数据的快取节点时,占总访问次数的比例,缓存命中率越高,代表性能越好。
什么是静态内容 & 动态内容?
使用CDN费用为什么这么高?回源流量怎么那么多?这时候您需要注意网站是哪一种属性的内容
静态资源内容:
当访问者多次访问这个网页内容,资源的原始码永远都是固定不变的,将进行缓存在CDN快取节点上(例:形象官网、图床、线上电影、部落格 等..)。
静态文件范例:
.gif、.png、.bmp、.jpg、.jpeg、.mp3、.wma、.flv、.mp4、.wmv、.ogg、.avi、.doc、.docx、.xls、.xlsx、.ppt、.pptx、.txt、.pdf、.zip、.exe、.tat、.ico、.css、.js、.swf、.apk、.m3u8、.ts、.ps、.tif、.class、.mid、.webp、.jar…..
动态资源内容:
需要与伺服器、资料库即时同步及即时交互等功能的
当访问者多次访问这个网页内容时需要与伺服器、资料库同步更新,资源可能会发生变动的,则透过快取节点最佳路由回源伺服器更新资料(例:股市交易、直播、聊天室、购物车系统、会员功能 等..)
动态文件范例:
asp、.jsp、.php、.perl、.cgi、api接口、websocket 长连结、动态交互请求(post、put、patch)….