在当下的互联网应用中充斥了大量的静态内容,这些静态和准动态内容在访问请求中占据了大量的网络资源,如果这些请求全部指向源站服务器,很容易导致网络的拥塞甚至是服务器的宕机,对正常的业务开展造成严重影响。为了解决这种情况,CDN 技术应运而生。
什么是 CDN?
CDN 的全称是 Content Delivery Network,即内容分发网络。CDN 是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
CDN 的基本原理
CDN 的基本原理是在用户访问相对集中的地区和网络设置一些缓存服务器。当用户访问网站时,利用全局的负载均衡技术将用户的访问指向距离最近的缓存服务器,由缓存服务器代替源站响应用户的访问请求。这样一方面减轻了源站服务器的工作压力,另一方面使用户可就近取得所需内容,解决 Internet 网络拥挤的状况,提高用户访问网站的响应速度。
CDN 的工作过程
(1)当用户点击网站页面上的内容 URL,本地解析系统会得到该域名的 CNAME 记录,然后 DNS 系统将解析交给 CNAME 指向的 CDN 专用 DNS 服务器。
(2)CDN 的 DNS 服务器将 CDN 的全局负载均衡设备 IP 地址返给用户。
(3)用户向 CDN 的全局负载均衡设备发起内容 URL 访问请求。
(4)CDN 全局负载均衡设备根据用户 IP 地址,以及用户请求的内容 URL,选择一台用户所属区域的负载均衡设备,告诉用户向这台设备发起请求。
(5)区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务。
(6)全局负载均衡设备把服务器的 IP 地址返回给用户。
(7)用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。
(8)如果这台缓存服务器上并没有用户想要的内容,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容缓存到本地。
CDN 工作流程图
CDN 有哪些作用?
CDN 主要用于加速网站的访问,除此之外还有其他一些作用:
1. 实现跨运营商、跨地域的全网覆盖
CDN 通过和运营商合作,部署 IDC 资源,在全国骨干节点上合理部署 CDN 边缘分发存储节点,充分利用带宽资源,平衡源站流量,实现跨域跨网的全覆盖效果。
2. 保障网站安全
CDN 的负载均衡和分布式存储技术,可以让服务器源站 “躲在” CDN 节点背后免遭攻击,相当于无形中为网站添加了一把保护伞,有效提升网站的安全性和可靠性。
3. 异地备援
当某个服务器发生意外故障时,CDN 会调用其他邻近的健康服务器节点进行服务,进而提供接近 100% 的可靠性,使网站处于永不宕机的状态。
4. 节约成本投入
CDN 可以实现网站节点的全国铺设,无需考虑购买服务器与后续的托管运维,也不用为管理维护技术人员而烦恼,节省人力、精力和财力。
CDN 的应用场景
1. 网站与应用加速
CDN 可用于网站或者应用中大量静态资源的加速分发,如各类型图片、html、css、js 文件等,可以通过 CDN 缓存到边缘节点上,当用户访问即可就近获取,降低了用户访问时延同时缓解了源站压力
2. 视频、大文件下载分发加速
CDN 可以针对各类文件、在线点播视频提供下载、分发加速,比如 mp4、flv 视频文件或者单个文件大小在 20M 以上的安装包等文件,CDN 可以搭配对象存储 OSS 使用,提升回源速度,节约回源带宽成本。
3. 直播加速
CDN 可以为直播分发提供流畅的播放下行链路,借助负载均衡系统将主播端采集的音视频数据推送到接近用户的数千个边缘节点,当观众端发起请求,可以就近取得资源,减少网络抖动风险,增加直播链路稳定性和流畅性。
4. 移动应用加速
CDN 可以为移动 APP 更新文件分发,为移动 APP 内图片、页面、短视频、UGC 等内容的优化提供加速分发效果。同时可提供 http DNS 服务,避免 DNS 劫持并获得实时精确的 DNS 解析结果,有效缩短用户访问时间,提升用户体验。
……
在今天的互联网应用场景下,CDN 所承载内容越来越多,不仅仅是图片、下载、视频等静态内容的分发和就近接入等加速应用,CDN 在减少宽带成本、防止服务中断、加强网站的安全性、增加内容可用性和冗余等方面也发挥着重要作用,已经成为了一项不可或缺的网络基础设施。