之前的文章为大家解释了CDN是什么,本文将为大家深入浅出的介绍为什么CDN会对源IP和服务器进行保护,且加速的基本原理。
CDN加速
之前的文章为大家介绍过CDN的运行工作,现在我们拿双11背后的商家物流举例解释其加速功能。
服务器源站相当于某商家自己的总货仓,而CDN就像分布在各地的仓储物流点。
商家会预先在各地区的仓储五六点提前存储一些常用商品,相当于静态档案使用CDN进行快取。当消费者从平台下单购买时,平台根据消费者的地址就近匹配到最近的仓储物流点,并进行发货,这样消费者就可以最快速的拿到商品。
这样的分布方案可以避免所有订单拥挤的风险,当一个仓储节点过于拥挤时,系统会就近选择仓储节点进行分派。另外,可以根据使用量来调节仓储节点的分布和容量,这样就可以避免节点在业务低谷时期浪费。
CDN就是类似此类系统,将内容分布到各个节点,方便不同地区的用户进行使用。所以,降低延时、提高稳定性、降低成本、弹性收缩都是CDN的好处。
保护源IP和服务器
由于CDN分散的架构,使用者是通过访问就近的边缘节点来获取内容,通过这样的间接获取可以有效的隐藏源站IP,从而分解源站的访问风险。当出现网络攻击时,CDN可以成为第一道防火墙来进行防护,事实上高防CDN已经可以做到近乎百分百(99.99999%)的可用性。
借用阿里云官网的例子,来简单介绍CDN的工作原理。
假设通过CDN加速的域名为www.a.com
,接入CDN网络,开始使用加速服务后,当终端用户(北京)发起HTTP请求时,处理流程如下:
当终端用户(北京)向
www.a.com
下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。LDNS检查缓存中是否有
www.a.com
的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。当授权DNS解析
www.a.com
时,返回域名CNAMEwww.a.tbcdn.com
对应IP地址。域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。
LDNS获取DNS返回的解析IP地址。
用户获取解析IP地址。
用户向获取的IP地址发起对该资源的访问请求。
如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户,例如,图中步骤7和8,请求结束。
如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点,例如,图中的北京节点,并返回给用户,请求结束。
从这个例子可以了解到:
(1)CDN的加速资源是跟域名绑定的。
(2)通过域名访问资源,首先是通过DNS分查找离用户最近的CDN节点(边缘服务器)的IP
(3)通过IP访问实际资源时,如果CDN上并没有缓存资源,则会到源站请求资源,并缓存到CDN节点上,这样,用户下一次访问时,该CDN节点就会有对应资源的缓存了。
最后,如果有CDN或云服务相关需求,欢迎评论或私聊哦。QQ:1604769
留言0