一、概述
背景:
当下的互联网应用都包含大量的静态内容,但静态内容以及一些准动态内容又是最耗费带宽的,特别是针对全国甚至全世界的大型网站,如果这些请求都指向主站的服务器的话,不仅是主站服务器受不了,单端口500M左右的带宽也扛不住,所以大多数网站都需要CDN服务。
CDN,Content Delivery Network:基于内容的分布式分发网络。 简单的说CDN就是让原本上海的浏览器要访问北京主站内容的请求转而由部署在上海或南京的缓存来受理,这样请求的数据只需经过一跳或有限的几跳就能到达请求端,有效利用带宽并且降低主站压力,对于电子商务网站和搜索引擎网站以及门户网站,CDN的合理应用显得尤为重要。
一般需要CDN服务的网站会选择以下的组织方案:
- 通过租用的IDC提供额外的CDN服务;
- 购买专业的CDN服务商的服务;
- 自己组建CDN网络;
成本依次增高。
CDN设计目的是实现WEB内容的负载均衡,防止出现访问请求热点,延时响应等WEB请求通病。基于此,CDN的特点可以说有:
- 分布式存储
- 通过智能 DNS解析 或 http重定 向实现内容分发的负载均衡
- 全局负载均衡管理与内容管理
二、原理
2.1 网络结构
CDN网络一般分为中心与边缘节点两部分,中心负责全局负载均衡
与内容管理
。中心节点的功能如下:
- 随时监控边缘节点的健康状况(可用性,拥塞程度);
- 根据边缘节点到请求端的距离,以及边缘节点的健康状况,按一定的策略重定向请求;
- 与客户主站进行数据同步。
负责为用户提供内容服务的cache设备应部署在物理上的网络边缘位置,即CDN边缘层。CDN系统中负责全局性管理和控制的设备组成中心层(二级缓存),中心层同时保存着最多的内容副本,当边缘层设备未命中时,会向中心层请求,如果在中心层仍未命中,则需要中心层向源站 回源。(如果是流媒体,代价很大)
CDN**骨干点和CDN **POP点在功能上不同,中心和区域节点一般称为骨干点,主要作为内容分发和边缘未命中时的服务点;边缘节点又被称为POP(point of presence)
节点,CDN POP点主要作为直接向用户提供服务的节点。
2.2 CDN的效果
传统的未加缓存服务的访问过程:
- 用户向浏览器提供要访问的域名;
- 浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;
- 浏览器使用所得到的IP地址向的服务主机发出数据访问请求;
- 浏览器根据域名主机返回的数据显示网页的内容。
CDN网络是在用户和服务器之间增加Cache层, 如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现,访问使用CDN缓存后的网站的过程:
- 用户向浏览器提供要访问的域名。
- 浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实 际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。
- 此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求。
- 缓存服务器根据浏览器提供的要访问的域名,通过Cache**内部专用DNS解析**得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求。
- 缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程。
2.3 A记录和CNAME记录
(1)什么是域名解析?
域名解析就是国际域名或者国内域名以及中文域名等域名申请后做的到IP地址的转换过程。IP地址是网路上标识站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址。域名的解析工作由DNS服务器完成。
(2)什么是A记录?
A (Address) 记录
是用来指定域名
对应的IP地址
记录。用户可以将该域名下的网站服务器指向到自己的web server上。
A记录是IP解析,直接将域名指向某个IP,如果IP有所变动,那么A记录那边也必须更改。
(3)什么是CNAME记录?
别名记录
。这种记录允许我们将多个域名映射到另外一个域名。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A记录)。它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。这两个别名的全称就 http://www.mydomain.com/
和mail.mydomain.com
。实际上他们都指向host.mydomain.com
。
CNAME是别名解析,别名解析是先将域名解析到另一个域名再转跳到IP。
(4)使用A记录和CNAME进行域名解析的区别
A记录就是把一个域名解析到一个IP地址(Address,特制数字IP地址),而CNAME记录就是把域名解析到另外一个域名。其功能是差不多,CNAME将几个主机名指向一个别名,其实跟指向IP地址是一样的,因为这个别名也要做一个A记录的。但是使用CNAME记录可以很方便地变更IP地址。
如果一台服务器有100个网站,使用A记录的情况下变更IP则需要修改100条A记录;如果使用CNAME,该台服务器变更IP时,只需要变更一条A记录就可以了。
2.4 动态资源加速
动态缓存一般是对链路进行缓存,用到动态路由和协议栈优化等,不是传统的静态加速,所谓的全站加速是指静态内容可以缓存,其它交互内容还是要回源。
CDN给动态网站加速使用以下技术加速了动态资产的交付:
- 路由优化
- TCP优化
路由优化是非常重要的,因为互联网是一个动态的网络,流量会不断地改变网络拓扑。边界网关协议(BGP)是Internet的路由协议,但通过中间点(PoP)服务器可能会有更快的路由。 路由优化选择到达原点的最佳路径,以便站点可以连续访问,动态内容通过尽可能最快,最可靠的路由传送给最终用户。
三、使用CDN服务(阿里云)
本文档将帮助你快速开始使用CDN服务,流程如下,请按步骤操作:
步骤 1:开通CDN服务
- 在阿里云官网CDN产品详情页快速了解产品,之后单击 立即开通。
- 在购买页面选择适合计费方式,确认订单,CDN服务即开通。接下来就能开始接入您要加速的域名了。
步骤 2:添加加速域名
1.登录 CDN控制台 ,选择域名管理,这个页面可以查看您添加的所有加速域名和状态。点击 添加域名:
2.填写基本信息:输入加速域名(一般使用 子域名 或泛域名,例如 cdntest.example.com
)、选择合适的业务类型、源站。点击下一步,等待审核(源站为阿里云ECS、OSS可免审核):
业务类型说明:
阿里云CDN调度系统会根据用户选择的不同业务类型做针对性的调度优化:
业务类型 | 说明 |
---|---|
图片小文件 | 若加速内容多为 小型的静态资源 (如小文件、图片、网页样式文件等),推荐选择“图片小文件”业务类型。 |
大文件下载 | 若加速内容为 较大的文件(大于20MB的静态文件),例如游戏安装包、应用更新、手机ROM升级、应用程序包下载等场景,推荐选择“大文件下载”业务类型。 |
视音频点播 | 若大文件为 音频、视频 文件,例如音乐、视频的点播业务场景,推荐使用“视音频点播”业务类型。 |
直播流媒体 | 提供 直播流媒体 加速服务,目前支持 RTMP 和 HLS 方式的直播加速,直播业务类型不支持自定义源站,目前统一提供直播中心服务器:video-center.alivecdn.com |
全站加速 | 融合了 动态加速 和 静态加速,适用于动静态内容混合、含较多 动态资源请求 的站点。通过简单配置即可智能分别加速动静态内容,静态内容高速缓存,动态内容通过阿里云的最优链路算法及协议层优化快速回源获取。 |
源站类型说明:
源站类型 | 说明 |
---|---|
IP | 支持 多个 服务器外网 IP, 阿里云ECS的IP可免审核 |
源站域名 | 支持 多个 源站域名。注意:源站域名 不能 与加速域名相同,否则会造成循环解析,无法回源。例如您的 源站域名 为img.yourdomain.com ,则 加速域名 可设置为cdn.yourdomain.com |
OSS | 可手动输入 阿里云OSS Bucket 的外网域名如:xxx.oss-cn-hangzhou.aliyuncs.com ,OSS外网域名可前往 OSS控制台 查看。也可直接选择同账号下的 OSS Bucket |
注意:CDN 回源暂不支持 SNI
3.添加成功:加速域名审核通过后,会出现在 域名管理 的域名列表中,状态为 正常运行 即添加成功。
注意:添加完加速域名后,阿里云CDN会给您分配对应的CNAME地址,还需要 配置CNAME 后CDN服务才生效,请继续参考下方步骤3
步骤 3:配置 CNAME
1.在控制台 域名管理 的域名列表中复制加速域名对应的CNAME地址:
2. 前往你的 域名解析(DNS)服务商(如万网、阿里云解析、DNSPod、新网、腾讯云解析、route 53、godaddy等),添加该CNAME记录。现提供以下服务商的示例:
验证CDN服务是否生效
配置CNAME后,不同的服务商CNAME生效的时间也不同,一般新增的CNAME记录会立即生效,修改的CNAME记录会需要较长时间生效。您可以ping
或dig
您所添加的加速域名,如果被解析至*.*kunlun*.com
的域名,即表示CNAME配置已经生效,CDN功能也已生效: