- ]
目录
1 CDN简介
1.1 什么是CDN
CDN(Content Delivery Network,内容分发网络),即全网内容加速服务。
1.2 CDN产生的背景?作用是什么?
背景:为了解决距离服务器地方较远的客户访问服务器时间过程的问题。
作用(好处):使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度 。同时由于增加了缓存,也可以减少网络中冗余数据的重复传输。
1.3 CDN 的基本思想
CDN的基本思想就是:通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
联系到生活例子就是:跨国公司。跨国公司会在不同省市开设分店,之后,如果你要访问这家公司,直接到附近最近的分店即可。
1.4 CDN 适用场景
CDN 加速应用主要应用在以下 5 种场景:
- 网站静态加速:包括图片、CSS、JS 等静态文件的加速
- 全站加速:静态加速与动态加速结合,智能路由调度实现业务 0 改动全面加速整个网站访问速度
- 下载服务:大文件下载,如游戏安装包和素材,APK 更新等
- 图片服务:运用于 UGC 类社交图片应用
- 流媒体:包括视频点播、视频直播、音视频通信、安防监控
2 CDN 工作原理
以腾讯的CDN为例说明CDN工作原理:
详细说明如下:
- 用户向 www.test.com 下的某图片资源(如:1.jpg)发起请求,会先向 Local DNS 发起域名解析请求。
- 当 Local DNS 解析 www.test.com 时,会发现已经配置了 CNAME www.test.com.cdn.dnsv1.com,解析请求会发送至 Tencent DNS(GSLB),GSLB 为腾讯云自主研发的调度体系,会为请求分配最佳节点 IP。(这个也就是CDN的地址解析过程:先Local DNS 遍历-> 再GSLB)
- Local DNS 获取 Tencent DNS 返回的解析 IP。
- 用户获取解析 IP。
- 用户向获取的 IP 发起对资源 1.jpg 的访问请求。
- 若该 IP 对应的节点缓存有 1.jpg,则会将数据直接返回给用户(10),此时请求结束。若该节点未缓存 1.jpg,则节点会向业务源站发起对 1.jpg 的请求(6、7、8),获取资源后,结合用户自定义配置的缓存策略(可参考产品文档中的 缓存过期配置),将资源缓存至节点(9),并返回给用户(10),此时请求结束。
3 CDN 组成
CDN 中心节点:
包括 CDN 网管中心和全局负载均衡 DNS 重定向解析系统,负责整个 CDN 网络的分发及管理。
CDN 网管中心:
是整个 CDN 能够正常运转的基础保证,它不仅能对整个 CDN 网络中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中总的流量和各节点的流量,并保存在系统数据库中,使网管人员能够方便地进行进一步分析。一套完善的网管系统,允许用户按需对系统配置进行修改。
全局负载均衡 DNS:
通过一组预先定义好的策略,将当时最接近用户的 Cache 节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在各地的所有 CDN 节点保持持续通信,搜集各节点的通信状态,确保不会将用户的请求分发到不可用、或不健康的 Cache 节点上。。
CDN 边缘节点:
主要指异地分发节点,由负载均衡设备(如果缓存也需要集群的话)、高速缓存服务器两部分组成。 负载均衡设备负责每个节点中各个 Cache 的负载均衡,保证节点的工作效率;同时还负责收集节点与周围环境的信息,保持与全局负载均衡 DNS 的通信,实现整个系统的负载均衡。
高速缓存服务器(Cache):
负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。通过全局负载均衡 DNS 的控制,用户的请求被透明地指向离他最近的节点,节点中 Cache 服务器就像网站的原始服务器一样,响应终端用户的请求。因其距离用户更近,故其响应时间才更快。
4 CDN回源问题
4.1 什么是CDN回源?
在搜索引擎中所谓的域名回源就是搜索引擎的蜘蛛在爬行的过程中直接抓取源地址上的内容而不是存在各个节点(CDN)上的缓存内容。
回源域名一般是cdn领域的专业术语,通常情况下,是直接用ip进行回源的,但是如果客户源站有多个ip,并且ip地址会经常变化,对于cdn厂商来说,为了避免经常更改配置(回源ip),会采用回源域名方式进行回源,这样即使源站的ip变化了,也不影响原有的配置。
4.2 CND常见回源问题
- URL链接出现非法链接 (如 */./Play/show/id/349281 );
- CDN接收未知Referer处理失效(目前搜索引擎的状态码为499);
- CDN抓取服务器 Cache-Control, Last-Modified(影响CDN的抓取)
- CDN会同步缓存Cookie内容,造成用户间差异进而回源访问;
- CDN部分节点服务器出现异常;
- 源站过慢造成CDN节点抓取不到数据,未进行策略回避,进行造成持续阻塞;
5 总结
CDN的优点: 提高内容传送给用户的速度,提高安全性(黑客无法攻击到真正的服务器)
CDN缺点: 花费金钱,并且它增加了一些复杂的部署过程