深入理解华为云CDN的基础原理与应用实战 |【玩转华为云】

龙哥手记 发表于 2022/04/26 21:11:23 2022/04/26
【摘要】 很稳

【摘要】 本文主要内容有:CDN搞明白是啥,有什么用 另外华为云CDN的优势与友商比较它有什么优势呢,另外如何线上快速上手使用,以及最后用CDN来加速ECS资源。

本文的主要内容有

  • CDN的必须掌握基础知识
  • 华为云CDN优势在哪里
  • 华为CDN深入理解
  • 实战演练:使用CDN加速ECS资源

一 CDN的必须掌握基础知识

百度百科:CDN的全称是Content Delivery Network,翻译过来-内容分发网络 CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术;

image.png

CDN加速的本质其实是缓存加速,把资源缓存到CDN节点,用户就能很近访问到需要的资源。

名词解释下

  • 1 静态资源

每次访问得到的都是不变的文件,例如说:图片、视频、网站中的文件(html、css、js)、软件安装包、apk文件、压缩包文件等。

  • 2 动态资源

每次访问得到的都是变化的文件,例如说:网站中的文件(asp、jsp、php、perl、cgi)、API接口、数据库交互请求等。

  • 3 加速域名

加速域名是用户提供的需要使用CDN加速服务的域名,域名是便于记忆和沟通的一组服务器的地址,可用在网站,电子邮件,FTP这些等。

  • 4 CNAME记录

CNAME记录是指域名解析中的别名记录(Canonical Name),它允许把多个域名映射到同一个域名下。

比如说
image.png

您现在有一台服务器存放了一些文件,可以通过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
    image.png
    TCP/IP网络的功能实体,通过该服务器,用户只能通过域名就可以访问对应的服务器啦。在TCP/IP网络中域名与IP地址一一对应;

域名便于记忆,但网络中的服务器间只能通过IP地址相互识别,域名和IP地址之间的转换称为域名解析,域名解析需要通过专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。

比如说:您想访问xxx.abc.com会通过DNS转换成220.xxx.xxx.xxx(IP地址)。您可以使用华为云解析,就是这个意思

image.png

华为云解析:https://www.huaweicloud.com/product/dns.html

  • 8 边缘节点

边缘节点也可叫CDN节点、Cache节点,指的是距离最终用户接入具有较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连接速度。

  • 9 回源

CDN节点没有缓存资源或者缓存资源已到期的时候,节点会到回源站获取资源,然后返回给客户端。
image.png

比如说:您访问某个URL,如果解析到CDN节点未缓存该资源,则您的访问请求会直接到源站获取资源,并根据URL请求返回。

  • 10 回源HOST
    源站决定了回源的时候,请求到源站的IP地址。回源HOST决定了回源请求访问到该IP地址的哪个站点在哪

比如说:源站为域名时,源站为www.xxx.com回源HOST为www.abc.com实际回源的是www.xxx.com解析到的IP站点www.abc.com

比如说:源站为IP地址时,源站为1.1.1.1,回源HOST为www.abc.com实际回源的是1.1.1.1对应主机上的站点www.abc.com

  • 11 SSL/TLS

image.png

这个估计大家熟悉,SL(安全通讯协议),是一个构架于TCP之上的安全套接层,是为网络通信提供安全及数据完整性的一种安全协议。标准化之后的SSL名称为TLS(Transport Layer Security,传输层安全协议)。

  • 12 URL参数

根据业务需要判断是否启用该项配置,对用户请求URL中“?”之后的参数进行过滤,提高缓存命中率。

二 华为CDN优势在哪里

  • 1 节点丰富

image.png

加速节点资源丰富,2000+中国大陆加速节点,800+中国大陆境外加速节点。
充足的带宽资源,全网带宽输出能力不低于150Tbps。涵盖了电信、联通、移动、教育网等主流运营商,以及多家中小型运营商。保证将用户请求精准调度至最优边缘节点,提供了有效且稳定的加速效果。

  • 2 智能调度

image.png

全球更加精准的IP库,具有不断进化的能力,调度精准率最高99.99%。
CDN Net Turbo低时延,大数据实时反馈服务质量,动态调整用户的节点。

  • 3 安全防护
    image.png
    华为云为客户提供中立、安全、可靠的云CDN服务。
    支持全网HTTPS安全传输,网站防盗链等高级安全控制功能。

  • 4 操作简单

接入方式简单快速,提供自助化的域名配置。
支持多种可定制配置项,包括自定义防盗链、缓存策略、HTTPS证书等。
方便客户进行统计分析、日志管理、自定义缓存策略。

  • 5 稳定可靠

image.png

拥有全业务加速的技术能力,包括网站加速、下载加速、点播加速、全站加速
针对客户的多种业务提供一站式的加速解决方案,提升整体用户体验。

三 华为CDN深入理解

1 缓存操作

前提您已经成功开通CDN服务并且加速您的业务后,CDN控制台界面如下图所示

image.png

CDN提供资源的缓存刷新缓存预热功能

  • 缓存刷新:提交缓存刷新请求后,CDN节点的缓存内容将会被强制过期,当用户向CDN节点请求资源的时候,CDN会直接回源站请求对应的资源。
  • 缓存预热:提交缓存预热请求后,源站主动将对应的资源缓存到CDN节点,用户就能直接从CDN节点获取到最新的资源。

前提条件是只处于 “已开启”和“配置中”状态且未被禁用的域名 才能执行缓存刷新、缓存预热操作。相关域名状态说明请参见查看域名基本信息。

2 工作原理

  1. 当用户访问使用CDN服务的网站,本地DNS服务器通过CNAME方式把最终域名请求重定向到CDN服务。
  2. CDN通过一组预先定义好的策略(比如说内容类型、地理区域、网络负载状况等),将当时能够最快响应用户的CDN节点IP地址提供给用户,使用户可以以最快的速度获得网站内容

image.png

关键是用什么访问网站?

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) 时延

image.png
指完成整个文件的上传或下载所需的总时长。

2)丢包率

image.png

指在网络传输中所丢失数据包数量占所发送数据组的比率。

3)回源率

回源率分为回源请求数比例回源流量比例两种

  • 回源请求数比:指的是CDN节点对于没有缓存、缓存过期(可缓存)和不可缓存的请求占全部请求记录的比例。
  • 回源流量比:回源流量是CDN节点回源请求资源时产生的流量。回源流量比=回源流量/(回源流量+用户请求访问的流量),比值越低,肯定性能越好。

4)缓存命中率

缓存命中率分成请求命中率流量命中率,缓存命中率越高,性能就越好。

  • 1 请求命中率 = 命中缓存的请求数 / 请求总数
  • 2 流量命中率 = 命中缓存产生的流量 / 请求总流量

请求总流量:指命中缓存产生的流量和请求回源产生的流量之和。

敲黑板:如果说流量命中率越低,回源流量越大,源站的流出流量越大,那么源站带宽资源占用越大,其代表了源站服务器收到的负载压力,需要你重点关注流量命中率。

4 加速案例

本次测试采用业内通用的基调测速方法,服务商为听云。测试对象为华为云OBS桶、华为云CDN,测试运营商为中国联通和中国电信。

  • 时延性能
    单位:秒
    image.png

  • 可用性
    经测试,OBS桶和CDN的可用性均为100%。
    image.png

5 域名配额限制

为了防止资源滥用,平台限定了各服务资源的配额,也就是说对用户的资源数量和容量做了限制,CDN域名数量限制如下表。

如果当前域名配额限制无法满足使用需要,您可以提交工单申请扩大配额。
image.png

6 应用场景有哪些

1 文件下载加速

image.png

用于使用HTTP/HTTPS文件下载业务的网站、下载工具、游戏客户端、APP商店等。

现在越来越多的新业务需要通过网络对客户端软件进行实时更新,包括APP更新,手游更新等,传统的下载类业务也需要支持更多的文件数量和更大的文件,如果所有的请求都通过源站服务器来处理,服务器和网络会成为很大的瓶颈, 导致下载体验变差。使用CDN下载加速可以将下载量大的内容分发到各地的CDN节点,有效减轻源站的压力,也保证了客户端高速下载的需要;

2 点播加速
image.png

适用于提供音视频点播服务的客户。例如:在线教育类网站、在线视频分享网站、互联网电视点播平台、音乐视频点播APP等。

因为传统的点播服务会加大服务器的负载,并消耗巨大的带宽资源,同时又无法保证终端用户访问时需要的高速体验,CDN点播加速可以提供快速、稳定和安全的点播加速服务,通过分布在各个区域的CDN节点,将音视频内容扩展到距离用户较近的地方,随时随地为用户提供高品质的访问;

3 全站加速
image.png

全站加速目前作为华为云的新服务,更多资讯到下面地址页面进行咨询

用于各行业动静态内容混合,含较多动态资源请求(如asp、jsp、php等格式的文件)的网站。全站加速融合了动态和静态加速,用户请求资源时,静态内容从边缘节点就近获取,动态内容通过动态加速技术智能选择较优路由回源获取。CDN全站加速有效提升动态页面的加载速度,避开网络拥堵路由,提高访问成功率,实现网站整体加速与实时优化。
image.png

全站加速产品WSAhttps://www.huaweicloud.com/product/wsa.html

四 实战演练:使用CDN加速ECS资源

1 弹性云服务器是个啥?

ECS(弹性云服务器)由CPU、内存、操作系统、云硬盘组成的计算组件,可以根据业务灵活配置,能节约大量的硬件成本。ECS服务分区域,跨区域访问会存在网络延时的问题,从而影响用户体验。

image.png

CDN可以有效加速网站,给用户提供良好的体验,通过CDN加速ECS资源,这样构造的业务系统可以在降低成本的同时,提高终端用户使用感受。

当终端用户发起访问请求的时侯,会首先通过CDN查找对此域名响应速度较快的CDN节点,并查询此节点是否有缓存终端用户请求的内容。如果说CDN节点有缓存用户所需资源,直接将资源返回给用户;如果CDN节点无缓存,则回源请求资源返回给用户,同时将资源缓存到CDN节点。
image.png

2 方案优势

  • 用户访问网站资源,全部通过CDN,降低源站压力
  • 使用CDN流量,单价低于ECS直接访问外网流量,这样可以节约50%到57%的带宽成本,详见通过CDN减少公网带宽费用
  • 终端用户从距离最近的CDN节点获取资源,减少网络传输距离,保证静态资源质量

3 配置步骤

3.1在CDN控制台添加加速域名

  1. 登录华为云控制台,选择“所有服务 > CDN与智能边缘 > CDN”,进入CDN管理控制台。
  2. 单击左侧“域名管理”,进入域名管理页面。
  3. 在域名管理页面单击“添加域名”。
  4. 在“添加域名”弹框中配置域名及CDN加速等信息,参考添加CDN加速域名。
  5. 加速域名:此处以download.game-apk1.com为例。
  • 服务范围:根据您的业务需要选择服务范围
  • 业务类型:实际业务结合应用场景选择合适的业务类型
  • 源站类型:选择源站IP或源站域名
    image.png
    最后单击确定,完成域名添加
    image.png

敲黑板:配置过程大概需要5-10分钟,当“状态”为“已开启”时,表示域名添加成功

  1. 添加加速域名后,为保证顺利切换不影响业务,建议先做测试再切换DNS解析,测试流程请参考本地测试加速域名。
  2. 配置CNAME

添加加速域名后,CDN会自动生成一条CNAME域名。加速域名在CDN服务中获得的CNAME域名不能直接访问,必须在加速域名的域名服务商处配置CNAME记录,将加速域名指向CNAME域名,访问加速域名的请求才能转发到CDN节点上,达到加速效果。本实践中自动生成的CNAME域名为“download.game-apk1.com.c.cdnhwc1.com”,不同DNS服务商的CNAME配置方式不同,此处以华为云云解析服务为例。

  • 登录华为云控制台,在控制台首页选择“网络 > 云解析服务DNS”,进入云解析服务页面。

  • 在左侧菜单栏中,选择“域名解析 > 公网解析”,进入公网域名列表页面。

  • 在待添加记录集的域名所在行,单击“域名”列的域名名称。本实践中对应的域名为“game-apk1.com.”。
    image.png
    单击“game-apk1.com”,进入域名解析页面,然后单击右上角“添加记录集”,进入“添加记录集”弹出框。
    image.png

  • 单击“确定”,完成添加。

  • 验证CNAME配置是否生效。

打开Windows操作系统中的cmd程序,输入如下指令


nslookup -qt=cname 加速域名

实战里面的加速域名为“download.game-apk1.com”。如果回显CDN分配的CNAME域名,那么表示 CNAME 配置已经生效。

更多详情请查看华为云CDN官网:https://www.huaweicloud.com/product/cdn.html

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。