目录
一、简介
CDN(Content Delivery Network,内容分发网络)是将源站内容分发至靠近用户的加速节点,使用户可以就近获得所需的内容,解决Internet网络拥挤的状况,提高用户访问的响应速度和成功率,从而提升业务的使用体验。
可以通过CDN管理控制台添加加速域名、配置CNAME解析,即可启用CDN加速。还可以根据业务需要,为加速域名进行缓存、安全、性能优化配置,优化加速效果、缓解源站压力。
举个栗子来帮助理解
:
京东最开始的物流仓库在总部(北京),我在重庆买了东西,京东基本上不可能一天内把货物送到我手上;后来京东在一些主要城市(上海、武汉、成都)也建设了物流仓库,我同样在重庆购物,京东只需要在就近有货源的仓库调货即可;再后来,京东直接在你家“附近”建了仓库,去年广州一个城市就有超过10个仓库,实现了当天达、小时达。(比如:我今天早上6点买的东西下午3点就取到了)。
上面的表述可能与实际有些许出入,但用来解释CDN的作用再合适不过了。
二、加速原理
当用户访问使用CDN服务的网站时,本地DNS服务器通过CNAME方式将最终域名请求重定向到CDN服务。CDN通过一组预先定义好的策略(如内容类型、地理区域、网络负载状况等),将当时能够最快响应用户的CDN节点IP地址提供给用户,使用户可以以最快的速度获得网站内容。使用CDN后的HTTP请求处理流程如下。
HTTP请求流程说明:
- 用户在浏览器输入要访问的网站域名www.example.com,向本地DNS发起域名解析请求。
- 本地DNS检查缓存中是否有www.example.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向网站授权DNS查询。
- 网站DNS服务器解析发现域名已经解析到了CNAME:www.example.com
.c.cdnhwc1.com
。 - 请求被指向CDN服务。
- CDN对域名进行智能解析,将响应速度最快的CDN节点IP地址返回给本地DNS。
- 用户
获取响应速度最快的CDN节点IP地址
。 - 浏览器在得到最佳节点的IP地址以后,向CDN节点发出访问请求。
- 如果该IP地址对应的节点已缓存该资源,节点将数据直接返回给用户,如图中步骤7和8,请求结束。
- 如果该IP地址对应的节点未缓存该资源,节点回源请求资源。获取资源后,结合用户自定义配置的缓存策略,
将资源缓存至节点
,如图中的北京节点,并返回给用户,请求结束。配置缓存策略的操作方法,请参见缓存配置。
三、应用场景
3.1 网站加速
适用于有加速需求的网站,包括门户网站、电商平台、资讯APP、UGC应用(User Generated Content,用户原创内容)等。CDN网络能够对加速域名下的静态内容提供良好的加速服务
。支持自定义缓存规则,用户可以根据数据需求设置缓存过期时间,缓存格式包括但不限于zip、exe、wmv、gif、png、bmp、wma、rar、jpeg、jpg等。
3.2 文件下载加速
适用于使用HTTP/HTTPS文件下载业务的网站、下载工具、游戏客户端、APP商店等
。现在越来越多的新业务需要通过网络对客户端软件进行实时更新
,包括APP更新,手游更新等,传统的下载类业务也需要支持更多的文件数量和更大的文件,如果所有的请求都通过源站服务器来处理,服务器和网络会成为很大的瓶颈,导致下载体验变差。使用CDN下载加速可以将下载量大的内容分发到各地的CDN节点,有效减轻源站的压力,同时保证了客户端高速下载的需求。
3.3 点播加速
适用于提供音视频点播服务的客户。例如:在线教育类网站、在线视频分享网站、互联网电视点播平台、音乐视频点播APP等
。传统的点播服务会加大服务器的负载,并消耗巨大的带宽资源,同时又无法保证终端用户访问时需要的高速体验,CDN点播加速可以提供快速、稳定和安全的点播加速服务,通过分布在各个区域的CDN节点,将音视频内容扩展到距离用户较近的地方,随时随地为用户提供高品质的访问体验。
3.4全站加速
适用于各行业动静态内容混合,含较多动态资源请求
(如asp、jsp、php等格式的文件)的网站。全站加速融合了动态和静态加速,用户请求资源时,静态内容从边缘节点就近获取,动态内容通过动态加速技术智能选择较优路由回源获取。CDN全站加速有效提升动态页面的加载速度,避开网络拥堵路由,提高访问成功率,实现网站整体加速与实时优化。
四、一些基本概念
-
静态资源
每次访问得到的都是相同的文件,例如:图片、视频、网站中的文件(html、css、js)、软件安装包、apk文件、压缩包文件等。 -
动态资源
每次访问得到的都是不同的文件,例如:网站中的文件(asp、jsp、php、perl、cgi)、API接口、数据库交互请求等。 -
加速域名
加速域名是用户提供的需要使用CDN加速服务的域名,域名是便于记忆和沟通的一组服务器的地址,应用于网站,电子邮件,FTP等。 -
CNAME记录
CNAME记录是指域名解析中的别名记录(Canonical Name),允许将多个域名映射到同一个域名。
例如:
您有一台服务器存放了一些文件,可以通过file.example.com访问该资源,但是希望通过另一个域名data.example.com也能访问。
那么您可以在DNS解析服务商处新增一条CNAME记录,将data.example.com指向file.example.com。
添加CNAME记录后,所有访问data.example.com的请求就会指向file.example.com,获得相同内容。 -
CNAME域名
用户在管理控制台添加加速域名后,系统会为加速域名分配一个对应的“CNAME域名”(域名形式为:..c.cdnhwc1.com)。用户需要在域名服务商处,配置一条CNAME记录,将加速域名指向“CNAME域名”,记录生效后,域名解析的工作就正式转向CDN服务,该域名所有的请求都将转向CDN节点,达到加速效果。 -
源站
源站指用户的业务服务器,即被加速分发数据的来源。 -
DNS
TCP/IP网络中的功能实体,通过该服务器,用户只通过域名就可以访问对应的服务器。在TCP/IP网络中域名与IP地址一一对应,域名便于记忆,但网络中的服务器间只能通过IP地址相互识别,域名和IP地址之间的转换称为域名解析,域名解析需要通过专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。
例如:您访问xxx.abc.com会通过DNS转换成220.xxx.xxx.xxx(IP地址)。您可以使用华为云解析,也可以使用其他的DNS服务商。 -
边缘节点
边缘节点也称CDN节点、Cache节点等,指距离最终用户接入具有较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连接速度。 -
回源
CDN节点未缓存资源或者缓存资源已到期时,节点会回源站获取资源,返回给客户端。
例如:您访问某个URL,如果解析到CDN节点未缓存该资源,则您的访问请求会直接到源站获取资源,并根据URL请求返回。 -
回源HOST
源站决定了回源时,请求到源站的IP地址。回源HOST决定回源请求访问到该IP地址的哪个站点。
例1:源站为域名时,源站为www.xxx.com,回源HOST为www.abc.com,实际回源的是www.xxx.com解析到的IP站点www.abc.com。
例2:源站为IP地址时,源站为1.1.1.1,回源HOST为www.abc.com,实际回源的是1.1.1.1对应主机上的站点www.abc.com。 -
SSL/TLS
SSL(Secure Sockets Layer,安全通讯协议),是一个构架于TCP之上的安全套接层,是为网络通信提供安全及数据完整性的一种安全协议。标准化之后的SSL名称为TLS(Transport Layer Security,传输层安全协议)。 -
URL参数
根据业务需要判断是否启用该项配置,对用户请求URL中“?”之后的参数进行过滤,提高缓存命中率。
五、实战
华为云、阿里云、腾讯云等厂商都提供有CDN服务,我的域名是在阿里云购买的(新人便宜)。我平常华为云用的比较多,起初本来想用华为云的CDN来加速的,但是发现好像要使用华为云购买的域名才行,如果要使用其他厂商处购买的域名就要把域名迁移到华为云,有点小麻烦,就没弄了。回到阿里云开通了CDN服务(阿里云还可以对在腾讯云购买的域名进行加速)。
价格还可以吧,可以买资源包也可以按量付费,大概100GB/年/20元的样子。
操作按照官网文档来即可,注意一下域名归属权验证就行了。
5.1 开通CDN服务
5.2 添加加速域名
5.3 域名归属权验证
该步骤用来验证你要加速的域名是不是你的。按照指导,阿里云这边生成一个字符串文本,把它拷贝到你的网站的根目录即可。
文件拷贝我是在宝塔面板中直接上传的,如图。注意是网站的根目录,不是服务器的根目录
。
5.4 配置CANME
在云解析DNS页面配置即可,和之前添加记录相同。把记录值从主机IP改成CANME地址即可。
我服务器是2M的带宽: