网络中的中间商(CDN)

CDN发展背景

CDN的全称是Content Delivery Network,内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

CDN的作用:解决由于网络带宽小、用户访问量大、网点分布不均等原因造成用户访问网站响应速度慢的问题

AKaMai是最早的CDN的服务商,蓝汛是中国最早的CDN的服务商,同期的还有网宿,现在的CDN的服务商主要有阿里、腾讯、百度。

CDN的核心技术

全局调度

调度系统解决的是从用户接入开始到用户访问CDN节点之间的业务逻辑处理。

主要调度有:DNS调度、302调度、httpdns调度

DNS调度

缺点:容易被劫持。

准确性差,通过识别local dns出口ip来智能调度。

         灵活性差,不能使用太多节点覆盖,调度粒度粗。

302调度

缺点:增加了20-40ms的首包时间,不适合大文件的传输。

         依赖客户端的版本,低版本的chrome不允许range请求返回302

Httpdns调度

HttpDNS优势:

从原理上来讲,HttpDNS只是将域名解析的协议由DNS协议换成了Http协议,并不复杂。但是这一微小的转换,却带来了无数的收益:

A、根治域名解析异常:由于绕过了运营商的LocalDNS,用户解析域名的请求通过Http协议直接透传到了CDN厂商的HttpDNS服务器IP上,用户在客户端的域名解析请求将不会遭受到域名解析异常的困扰。

B、调度精准:HttpDNS能直接获取到用户IP,通过结合CDN厂商自有专利技术生成的IP地址库以及测速系统,可以保证将用户引导的访问最快的CDN节点上。

302调度和httpdns调度的区别:

HTTP-DNS协议只是将域名解析的协议由DNS协议换成了HTTP协议,后端配置和调度系统实际上还是基于DNS服务器(BIND之类)。

302跳转调度的方式,不属于走域名解析的方式,后端配置和调度系统一般是基于GLSB(例如Nginx+Lua)方式。

负载均衡

全局负载均衡(GSLB:主要根据用户就近原则,通过对每个CDN节点进行“最优”判断,确定向用户提供服务的CDN节点的物理位置。

本地负载均衡(SLB:主要负责节点内部的设备负载均衡。

CDN的各层节点:

上层节点:负责缓存回源拉取的内容。

                 负责回用户源站,与源站相关的业务均在上层。

                     内容分发和作为中层未命中时的服务点。

中层节点:负责缓存从上游拉取的内容。

                     分担上层压力。

                     内容分发和作为下层未命中的服务点。

下层节点:负责缓存从上游拉取的内容。

                     分担上层压力。

                     负责处理用户的业务。

                    

CDN的单个节点

Ngx:业务层

17层负载,使用url一致性哈希,支持热点打散。

2、业务接入和客户需求处理。

3、部分内容管理,如一键屏蔽、部分刷新。

Cache:存储和回源

1、存储:存储规则、存储时间、特殊状态码缓存。

       2、回源:回源协议、地址(择优|轮询)回源Host

回源的收敛形式的作用1、减少回源次数。2、边缘节点存满后,可能会根据LRU刷新cache时,可以在上层节点找到以前的缓存。

CDN提供的服务:网页加速、流媒体加速、文件传输加速和应用协议加速。

网页加速是最早出现的CDN服务类型,网页的内容主要以文字、图片、动画等形式为主,支持文本方式的电子邮件交换,因此CDN技术最初的应用重点就是用来对这些网页的静态内容进行加速。

流媒体加速通过将流媒体内容推送到离用户最近的边缘节点,使得用户能够从网络边缘获取内容,从而提高视频传输质量,缩短访问时间,节省上层网络流量,避免单一中心的服务器瓶颈问题。流媒体加速服务分为两类:流媒体直播加速和流媒体点播加速。

       文件传输加速通过使用CDN的分布式边缘节点提供下载服务,网站可以将大量文件下载的性能压力和带宽压力交给CDN来分担,提高用户的下载速度。

       应用协议加速通过对TCP/IP等传输协议的优化,改善和加快用户在广域网上的内容传输速度,或者对一些特定协议,如SSL协议进行加速,解决安全传输时的性能和响应速度问题。

 

### CDN服务器的工作原理 CDN(内容分发网络)旨在提高互联网应用的性能和可靠性,通过在全球多个地理位置部署服务器节点来减少用户访问延迟并提升加载速度。当使用CDN服务时,网站只需将域名解析权交给CDN服务商,并上传需分发的内容至CDN平台即可完成基础设置[^1]。 具体而言,在接收到客户端发起的资源请求后,CDN会依据预设策略选择最优路径以及最近或者最合适的边缘节点响应此请求。如果所请求的对象存在于选定节点上的缓存中,则可以直接由该节点提供给终端设备;反之,若不存在于任何已知位置,则触发一次回源操作——即从原始服务器获取数据副本后再传递给最初发出查询的一方同时更新沿途经过的所有中间存储设施内的对应条目以便未来相似需求可以更快得到满足[^2]。 值得注意的是,为了确保高效运作和服务质量,CDN系统还采用了诸如全局负载均衡技术等手段优化整体架构设计,从而能够在不影响用户体验的前提下最大化利用现有硬件资源为众多客户提供稳定可靠的服务支持[^4]。 ### 配置方法概述 针对不同类型的Web应用程序和个人偏好差异,具体的实施细节可能会有所区别。然而一般来说: - **DNS配置**:这是启用CDN功能的第一步也是最关键的环节之一。需要修改目标站点对应的顶级域记录指向指定CNAME地址或者其他形式的目标标识符。 - **内容推送/同步机制设定**:根据实际应用场景决定是否开启自动发布流程或是手动控制版本迭代过程中的文件传输行为。 - **缓存规则定制化调整**:允许管理员自定义哪些URL模式应该被优先考虑加入公共池子当中共享给更多访客群体享用新鲜出炉的信息产品;同时也支持例外列表排除某些特定页面免受上述处理逻辑影响保持原样呈现给每一个独立个体。 - **安全防护措施强化**:考虑到潜在的安全隐患威胁因素的存在,建议适时引入SSL证书加密通信链路保障敏感资料交换过程中不会遭到恶意窃听篡改风险侵害。 ```bash # 修改 DNS 设置示例命令 (适用于部分云服务平台) nsupdate << EOF server ns.example.com update add cdn.yourdomain.com 86400 CNAME your.cdn.provider.net. send EOF ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值