深入理解华为云CDN的基础原理与应用实战 |【玩转华为云】
【摘要】 本文主要内容有:CDN搞明白是啥,有什么用 另外华为云CDN的优势与友商比较它有什么优势呢,另外如何线上快速上手使用,以及最后用CDN来加速ECS资源。
本文的主要内容有
- CDN的必须掌握基础知识
- 华为云CDN优势在哪里
- 华为CDN深入理解
- 实战演练:使用CDN加速ECS资源
一 CDN的必须掌握基础知识
百度百科:CDN的全称是Content Delivery Network,翻译过来-
内容分发网络
CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术;
CDN加速的本质其实是缓存加速,把资源缓存到CDN节点,用户就能很近访问到需要的资源。
名词解释下
- 1 静态资源
每次访问得到的都是不变的文件,例如说:图片、视频、网站中的文件(html、css、js)、软件安装包、apk文件、压缩包文件等。
- 2 动态资源
每次访问得到的都是变化的文件,例如说:网站中的文件(asp、jsp、php、perl、cgi)、API接口、数据库交互请求等。
- 3 加速域名
加速域名是用户提供的需要使用CDN加速服务的域名,域名是便于记忆和沟通的一组服务器的地址,可用在网站,电子邮件,FTP这些等。
- 4 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,获得相同内容,就是这么简单。
- 5 CNAME域名
如果你在管理控制台添加加速域名后,系统会为加速域名分配一个对应的“CNAME域名”(域名形式为:..c.cdnhwc1.com)。用户需要在域名服务商处,配置一条CNAME记录,将加速域名指向“CNAME域名”,这一步啥意思我已经说过,记录生效后,域名解析的工作就正式转向CDN服务,该域名所有的请求都将转向CDN节点,达到加速效果。
- 6 源站
指用户的业务服务器,即被加速分发数据的来源。
- 7 DNS
TCP/IP网络的功能实体,通过该服务器,用户只能通过域名就可以访问对应的服务器啦。在TCP/IP网络中域名与IP地址一一对应;
域名便于记忆,但网络中的服务器间只能通过IP地址相互识别,域名和IP地址之间的转换称为域名解析,域名解析需要通过专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。
比如说:您想访问xxx.abc.com会通过DNS转换成220.xxx.xxx.xxx(IP地址)。您可以使用华为云解析,就是这个意思
- 8 边缘节点
边缘节点也可叫CDN节点、Cache节点,指的是距离最终用户接入具有较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连接速度。
- 9 回源
CDN节点没有缓存资源或者缓存资源已到期的时候,节点会到回源站获取资源,然后返回给客户端。
比如说:您访问某个URL,如果解析到CDN节点未缓存该资源,则您的访问请求会直接到源站获取资源,并根据URL请求返回。
- 10 回源HOST
源站决定了回源的时候,请求到源站的IP地址。回源HOST决定了回源请求访问到该IP地址的哪个站点在哪。
比如说:源站为IP地址时,源站为1.1.1.1,回源HOST为www.abc.com,实际回源的是1.1.1.1对应主机上的站点www.abc.com。
- 11 SSL/TLS
这个估计大家熟悉,SL(安全通讯协议),是一个构架于TCP之上的安全套接层,是为网络通信提供安全及数据完整性的一种安全协议。标准化之后的SSL名称为TLS(Transport Layer Security,传输层安全协议)。
- 12 URL参数
根据业务需要判断是否启用该项配置,对用户请求URL中“?”之后的参数进行过滤,提高缓存命中率。
二 华为CDN优势在哪里
- 1 节点丰富
加速节点资源丰富,2000+中国大陆加速节点,800+中国大陆境外加速节点。
充足的带宽资源,全网带宽输出能力不低于150Tbps。涵盖了电信、联通、移动、教育网等主流运营商,以及多家中小型运营商。保证将用户请求精准调度至最优边缘节点,提供了有效且稳定的加速效果。
- 2 智能调度
全球更加精准的IP库,具有不断进化的能力,调度精准率最高99.99%。
CDN Net Turbo低时延,大数据实时反馈服务质量,动态调整用户的节点。
-
3 安全防护
华为云为客户提供中立、安全、可靠的云CDN服务。
支持全网HTTPS安全传输,网站防盗链等高级安全控制功能。 -
4 操作简单
接入方式简单快速,提供自助化的域名配置。
支持多种可定制配置项,包括自定义防盗链、缓存策略、HTTPS证书等。
方便客户进行统计分析、日志管理、自定义缓存策略。
- 5 稳定可靠
拥有全业务加速的技术能力,包括网站加速、下载加速、点播加速、全站加速。
针对客户的多种业务提供一站式的加速解决方案,提升整体用户体验。
三 华为CDN深入理解
1 缓存操作
前提您已经成功开通CDN服务并且加速您的业务后,CDN控制台界面如下图所示
CDN提供资源的缓存刷新和缓存预热功能
- 缓存刷新:提交缓存刷新请求后,CDN节点的缓存内容将会被强制过期,当用户向CDN节点请求资源的时候,CDN会直接回源站请求对应的资源。
- 缓存预热:提交缓存预热请求后,源站主动将对应的资源缓存到CDN节点,用户就能直接从CDN节点获取到最新的资源。
前提条件是只处于 “已开启”和“配置中”状态且未被禁用的域名 才能执行缓存刷新、缓存预热操作。相关域名状态说明请参见查看域名基本信息。
2 工作原理
- 当用户访问使用CDN服务的网站,本地DNS服务器通过CNAME方式把最终域名请求重定向到CDN服务。
- CDN通过一组预先定义好的策略(比如说内容类型、地理区域、网络负载状况等),将当时能够最快响应用户的CDN节点IP地址提供给用户,使用户可以以最快的速度获得网站内容
关键是用什么访问网站?
HTTPS如何请求
-
用户在浏览器输入要访问的网站域名 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) 时延
指完成整个文件的上传或下载所需的总时长。
2)丢包率
指在网络传输中所丢失数据包数量占所发送数据组的比率。
3)回源率
回源率分为回源请求数比例及回源流量比例两种
- 回源请求数比:指的是CDN节点对于没有缓存、缓存过期(可缓存)和不可缓存的请求占全部请求记录的比例。
- 回源流量比:回源流量是CDN节点回源请求资源时产生的流量。回源流量比=回源流量/(回源流量+用户请求访问的流量),比值越低,肯定性能越好。
4)缓存命中率
缓存命中率分成请求命中率和流量命中率,缓存命中率越高,性能就越好。
- 1 请求命中率 = 命中缓存的请求数 / 请求总数
- 2 流量命中率 = 命中缓存产生的流量 / 请求总流量
请求总流量:指命中缓存产生的流量和请求回源产生的流量之和。
敲黑板:如果说流量命中率越低,回源流量越大,源站的流出流量越大,那么源站带宽资源占用越大,其代表了源站服务器收到的负载压力,需要你重点关注流量命中率。
4 加速案例
本次测试采用业内通用的基调测速方法,服务商为听云。测试对象为华为云OBS桶、华为云CDN,测试运营商为中国联通和中国电信。
-
时延性能
单位:秒
-
可用性
经测试,OBS桶和CDN的可用性均为100%。
5 域名配额限制
为了防止资源滥用,平台限定了各服务资源的配额,也就是说对用户的资源数量和容量做了限制,CDN域名数量限制如下表。
如果当前域名配额限制无法满足使用需要,您可以提交工单申请扩大配额。
6 应用场景有哪些
1 文件下载加速
用于使用
HTTP/HTTPS
文件下载业务的网站、下载工具、游戏客户端、APP商店等。
现在越来越多的新业务需要通过网络对客户端软件进行实时更新,包括APP更新,手游更新等,传统的下载类业务也需要支持更多的文件数量和更大的文件,如果所有的请求都通过源站服务器来处理,服务器和网络会成为很大的瓶颈, 导致下载体验变差。使用CDN下载加速可以将下载量大的内容分发到各地的CDN节点,有效减轻源站的压力,也保证了客户端高速下载的需要;
2 点播加速
适用于提供
音视频点播服务
的客户。例如:在线教育类网站、在线视频分享网站、互联网电视点播平台、音乐视频点播APP等。
因为传统的点播服务会加大服务器的负载,并消耗巨大的带宽资源,同时又无法保证终端用户访问时需要的高速体验,CDN点播加速可以提供快速、稳定和安全的点播加速服务,通过分布在各个区域的CDN节点,将音视频内容扩展到距离用户较近的地方,随时随地为用户提供高品质的访问;
3 全站加速
全站加速目前作为华为云的新服务,更多资讯到下面地址页面进行咨询
用于各行业动静态内容混合,含较多动态资源请求(如asp、jsp、php等格式的文件)的网站。全站加速融合了动态和静态加速,用户请求资源时,静态内容从边缘节点就近获取,动态内容通过动态加速技术智能选择较优路由回源获取。CDN全站加速有效提升动态页面的加载速度,避开网络拥堵路由,提高访问成功率,实现网站整体加速与实时优化。
全站加速产品WSA:https://www.huaweicloud.cn/product/wsa.html
四 实战演练:使用CDN加速ECS资源
1 弹性云服务器是个啥?
ECS(弹性云服务器)由CPU、内存、操作系统、云硬盘组成的计算组件,可以根据业务灵活配置,能节约大量的硬件成本。ECS服务分区域,跨区域访问会存在网络延时的问题,从而影响用户体验。
CDN可以有效加速网站,给用户提供良好的体验,通过CDN加速ECS资源,这样构造的业务系统可以在降低成本的同时,提高终端用户使用感受。
当终端用户发起访问请求的时侯,会首先通过CDN查找对此域名响应速度较快的CDN节点,并查询此节点是否有缓存终端用户请求的内容。如果说CDN节点有缓存
用户所需资源,直接将资源返回给用户;如果CDN节点无缓存
,则回源请求资源返回给用户,同时将资源缓存到CDN节点。
2 方案优势
- 用户访问网站资源,全部通过CDN,降低源站压力
- 使用CDN流量,单价低于ECS直接访问外网流量,这样可以节约50%到57%的带宽成本,详见通过CDN减少公网带宽费用
- 终端用户从距离最近的CDN节点获取资源,减少网络传输距离,保证静态资源质量
3 配置步骤
3.1在CDN控制台添加加速域名
- 登录华为云控制台,选择“所有服务 > CDN与智能边缘 > CDN”,进入CDN管理控制台。
- 单击左侧“域名管理”,进入域名管理页面。
- 在域名管理页面单击“添加域名”。
- 在“添加域名”弹框中配置域名及CDN加速等信息,参考添加CDN加速域名。
- 加速域名:此处以
download.game-apk1.com
为例。
- 服务范围:根据您的业务需要选择服务范围
- 业务类型:实际业务结合应用场景选择合适的业务类型
- 源站类型:选择源站IP或源站域名
最后单击确定,完成域名添加
敲黑板:配置过程大概需要5-10分钟,当“状态”为“已开启”时,表示域名添加成功
- 添加加速域名后,为保证顺利切换不影响业务,建议先做测试再切换DNS解析,测试流程请参考本地测试加速域名。
- 配置CNAME
添加加速域名后,CDN会自动生成一条CNAME域名。加速域名在CDN服务中获得的CNAME域名不能直接访问,必须在加速域名的域名服务商处配置CNAME记录,将加速域名指向CNAME域名,访问加速域名的请求才能转发到CDN节点上,达到加速效果。本实践中自动生成的CNAME域名为“download.game-apk1.com.c.cdnhwc1.com
”,不同DNS服务商的CNAME配置方式不同,此处以华为云云解析服务为例。
-
登录华为云控制台,在控制台首页选择“网络 > 云解析服务DNS”,进入云解析服务页面。
-
在左侧菜单栏中,选择“域名解析 > 公网解析”,进入公网域名列表页面。
-
在待添加记录集的域名所在行,单击“域名”列的域名名称。本实践中对应的域名为“game-apk1.com.”。
单击“game-apk1.com”,进入域名解析页面,然后单击右上角“添加记录集”,进入“添加记录集”弹出框。
-
单击“确定”,完成添加。
-
验证CNAME配置是否生效。
打开Windows操作系统中的cmd程序,输入如下指令
nslookup -qt=cname 加速域名
实战里面的加速域名为“download.game-apk1.com
”。如果回显CDN分配的CNAME域名,那么表示 CNAME 配置已经生效。
更多详情请查看华为云CDN官网:https://www.huaweicloud.cn/product/cdn.html
- 点赞
- 收藏
- 关注作者
评论(0)