彻底cdn它的原理以及配置实践【玩转华为云】-4008云顶国际网站
本文的主要内容有:
- 一 cdn定义及优势
- 二 基本概念要搞懂
- 三 工作原理是什么
- 四 应用场景在哪
- 五 cdn如何加速waf防护资源
1.1 如何定义
cdn(content delivery network)内容分发网络它是在现有互联网基础之上的一层智能虚拟网络,在网络各处部署节点服务器,实现将源站内容分发至所有cdn节点上面来,使用户可以就近获得所需的内容。cdn服务缩短了用户查看内容的访问延迟,提高了用户访问网站的响应速度与网站的可用性,解决了网络带宽小、用户访问量大、网点分布不均等问题;
不过咱们华为云cdn把源站资源缓存到遍布全球的加速节点服务器,当终端用户访问资源,直接无需回源,cdn服务器通过一组预先定义好的策略(如内容类型、地理区域、网络负载状况等),直接把当时能够最快响应用户的cdn节点ip地址提供给用户,使用户可以以最快的速度获得网站内容;
华为云cdn加速节点资源丰富,有2000 中国大陆加速节点,800 中国大陆境外加速节点。有充足的带宽资源,全网带宽输出能力不低于150tbps。涵盖了电信、联通、移动、教育网等主流运营商,以及多家中小型运营商。覆盖130多个国家/地区,支持运营商网络超过1,600家。保证将用户请求精准调度至最优边缘节点,提供有效且稳定的加速效果,强大基础设施这个把心放在肚子里吧;
1.2 优势有哪些
- 节点丰富
加速节点资源丰富,2000 中国大陆加速节点,800 中国大陆境外加速节点。
充足的带宽资源,全网带宽输出能力不低于150tbps。
涵盖了电信、联通、移动、教育网等主流运营商,以及多家中小型运营商。保证将用户请求精准调度至最优边缘节点,提供了有效且稳定的加速效果。
- 智能调度
全球更加精准的ip库,具有不断进化的能力,调度精准率最高99.99%
cdn net turbo低时延,大数据实时反馈服务质量,动态调整用户的节点 - 安全防护
华为云为客户提供中立、安全、可靠的云cdn服务
支持全网https安全传输,网站防盗链等高级安全控制功能 - 操作简单
接入方式简单快速,提供自助化的域名配置
支持多种可定制配置项,包括自定义防盗链、缓存策略、https证书等
方便客户进行统计分析、日志管理、自定义缓存策略 - 稳定可靠
拥有全业务加速的技术能力,包括网站加速、下载加速、点播加速、全站加速
针对客户的多种业务提供一站式的加速4008云顶国际网站的解决方案,提升整体用户体验;
-
静态资源:每次访问得到的都是相同的文件,例如:图片、视频、网站中的文件(html、css、js)、软件安装包、apk文件、压缩包文件等。
-
动态资源:每次访问得到的都是不同的文件,例如:网站中的文件(asp、jsp、php、perl、cgi)、api接口、数据库交互请求等。
-
加速域名:是用户提供的需要使用cdn加速服务的域名,域名是便于记忆和沟通的一组服务器的地址,应用于网站,电子邮件,ftp等。
-
cname记录:是域名解析中的别名记录(canonical name),允许将多个域名映射到同一个域名。
咱举个例子:您有一台服务器存放了一些文件,可以通过file.example.com访问该资源,但是希望通过另一个域名data.example.com也能访问;那么您可以在dns解析服务商处新增一条cname记录,,添加cname记录后,,获得相同内容,就是折磨简单;
-
cname域名:用户在管理控制台添加加速域名后,系统会为加速域名分配一个对应的“cname域名”(域名形式为:..c.cdnhwc1.com)。用户需要在域名服务商处,配置一条cname记录,将加速域名指向“cname域名”,记录生效后,域名解析的工作就正式转向cdn服务,该域名所有的请求都将转向cdn节点,达到加速效果。
-
源站:指用户的业务服务器,即被加速分发数据的来源。
-
dns:tcp/ip网络中的功能实体,通过该服务器,用户只通过域名就可以访问对应的服务器。在tcp/ip网络中域名与ip地址一一对应,域名便于记忆,但网络中的服务器间只能通过ip地址相互识别,域名和ip地址之间的转换称为域名解析,域名解析需要通过专门的域名解析服务器来完成,说白了dns就是进行域名解析的服务器;
咱还是举个栗子:(ip地址),那么可以用华为云解析,也可以使用其他的dns服务商完成解析;
-
边缘节点:边缘节点也称cdn节点、cache节点等,指距离最终用户接入具有较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连接速度;
-
回源:cdn节点未缓存资源或者缓存资源已到期时,节点会回源站获取资源,返回给客户端;
咱们还是举个例子:您访问某个url,如果解析到cdn节点未缓存该资源,那您的访问请求会直接打到源站获取资源,并根据url请求返回;
- 回源host:源站决定了回源时,请求到源站的ip地址。回源host决定回源请求访问到该ip地址的哪个站点。
还是举个例子:源站为域名时,,,
源站为ip地址时,源站为1.1.1.1,,
-
ssl/tls:它是一个构架于tcp之上的安全套接层,是为网络通信提供安全及数据完整性的一种安全协议。标准化之后的ssl名称为tls(transport layer security,传输层安全协议);
-
url参数:根据业务需要判断是否启用该项配置,对用户请求url中“?”之后的参数进行过滤,提高缓存命中率;
敲黑板啦:使用cdn后,时延、丢包率、回源率通常会降低,缓存命中率则会提高。但是由于业务场景和业务类型不同,即使您选择了相同配置的cdn服务,实际产生的加速效果也不相同,因此本文仅提供了定性的指标以供观测
回源率、缓存命中率是指使用cdn后的衡量指标,如果您没有使用cdn,回源请求数为100%,缓存命中率为0;
当用户访问使用cdn服务的网站时,本地dns服务器通过cname方式把最终域名请求重定向到cdn服务。cdn通过一组预先定义好的策略(如内容类型、地理区域、网络负载状况等),把当时能够最快响应用户的cdn节点ip地址提供给用户,使用户可以以最快的速度获得网站内容。
使用cdn后的http请求处理流程如下
http请求流程如上图:
- 1 首先用户在浏览器输入要访问的网站域名 ,向本地dns发起域名解析请求
- 2 然后本地dns检查缓存中是否有www.example.com的ip地址记录,如果有的话,则直接返回给终端用户;那如果没有,则向网站授权dns查询
- 3 网站dns服务器解析发现域名已经解析了cname:
- 4 请求被指向cdn服务
- 5 cdn对域名进行智能解析,把响应速度最快的cdn节点ip地址返回给本地dns
- 6 用户把获取响应速度最快的cdn节点ip地址
- 7 浏览器在得到最佳节点的ip地址以后,向cdn节点发出访问请求
- 如果说该ip地址对应的节点已缓存该资源,那么节点将数据直接返回给用户,如图中步骤7和8,然后请求结束
- 如果该ip地址对应的节点未缓存该资源,节点回源请求资源。获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点,如图中的北京节点,并返回给用户,请求结束
域名配额限制
为防止资源被滥用,所以平台限定了各服务资源的配额,对用户的资源数量和容量也做了限制
- 网站加速
适用于有加速需求的网站,包括门户网站、电商平台、资讯app、ugc应用(user generated content,用户原创内容)等。cdn网络能够对加速域名下的静态内容提供良好的加速服务。支持自定义缓存规则,用户可以根据数据需求设置缓存过期时间,缓存格式包括但不限于zip、exe、wmv、gif、png、bmp、wma、rar、jpeg、jpg等
- 文件下载加速
适用于使用http/https文件下载业务的网站、下载工具、游戏客户端、app商店等。现在越来越多的新业务需要通过网络对客户端软件进行实时更新,包括app更新,手游更新等,传统的下载类业务也需要支持更多的文件数量和更大的文件,如果所有的请求都通过源站服务器来处理,服务器和网络会成为很大的瓶颈,导致下载体验变差。使用cdn下载加速可以将下载量大的内容分发到各地的cdn节点,有效减轻源站的压力,同时保证了客户端高速下载的需求
- 点播加速
适用于提供音视频点播服务的客户。例如:在线教育类网站、在线视频分享网站、互联网电视点播平台、音乐视频点播app等。传统的点播服务会加大服务器的负载,并消耗巨大的带宽资源,同时又无法保证终端用户访问时需要的高速体验,cdn点播加速可以提供快速、稳定和安全的点播加速服务,通过分布在各个区域的cdn节点,将音视频内容扩展到距离用户较近的地方,随时随地为用户提供高品质的访问体验
- 全站加速
适用于各行业动静态内容混合,含较多动态资源请求(如asp、jsp、php等格式的文件)的网站。全站加速融合了动态和静态加速,用户请求资源时,静态内容从边缘节点就近获取,动态内容通过动态加速技术智能选择较优路由回源获取。cdn全站加速有效提升动态页面的加载速度,避开网络拥堵路由,提高访问成功率,实现网站整体加速与实时优化
5.1 搞明白waf是啥
web应用防火墙(waf)能对网站业务流量进行多维度检测和防护,结合深度机器学习智能识别恶意请求特征与防御未知的威胁,能全面避免网站被黑客恶意攻击和入侵;
- 当web基础防护开启后,默认防范的是sql注入、xss跨站脚本、远程溢出攻击、文件包含、bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等常规的web攻击。您还可以根据实际使用需求,开启webshell检测、深度反逃逸检测和header全检测等web基础防护;
- 如果还不够的话,配置精准访问访问防护规则,对常见的http字段(如ip、路径、referer、user agent、params等)进行条件组合,用来筛选访问请求,并对命中条件的请求设置仅记录、放行或阻断操作;精准访问防护规则可以添加引用表,引用表防护规则对所有防护域名都生效,即所有防护域名都可以使用精准防护规则的引用表;
更多详情请戳它:
5.2 背景信息
cdn是构建在现有互联网基础之上的一层智能虚拟网络,通过在网络各处部署节点服务器,实现将源站内容分发至所有cdn节点,使用户可以就近获得所需的内容,所以接入cdn的网站都能有比较快的响应速度。
如果您的网站对安全性能要求比较高,同时又有加速的需求,可以使用华为云cdn联动waf配置,实现加速的同时防护web攻击;
5.3 cdn waf的配置原理
cdn waf联动的业务流向为:cdn>waf>源站,流量由cdn转发到waf,waf再将流量转到源站,实现网站加速、流量检测和攻击拦截,不懂看下面;
5.4 配置场景
来配您的waf在华为云上面举例,给您介绍及开通cdn waf联动部署,若您的waf在其它云服务,请参考完成全部配置;
场景1:已买waf并添加防护域名,配置cdn waf联动
如果您已把域名接入waf防御,要配置cdn waf联动,您需先把waf域名基本信息中的“是否已使用代理”改成“是”,waf才能够对真实源ip进行安全策略进行防御;然后在cdn侧加加速域名,把waf的cname作为cdn的源站,cdn就能把流量转发给waf,实现加速和web攻击防御联动啦;
使用是有限制的:
- cdn的加速域名仅支持默认端口,如果用非标端口的方式接入waf防护域名那么无法接入cdn服务器
- 如果您在waf侧给防护域名配置了https证书的话,请同步在cdn侧完成证书配置先,否则会导致域名没有办法访问的
详细操作步骤是这样
- 根据修改waf防护域名基本信息指导修改防护域名的代理设置
- 是否已使用代理:是
- 复制waf的cname
- 在cdn侧添加加速域名(也就是waf的防护域名)
a.登录华为云控制台,在控制台4008云顶国际网站首页左上角选择“服务列表>cdn与智能边缘 > cdn”,进入cdn控制台
b.左侧导航栏选择“域名管理”,进入域名管理页面
c.域名管理界面,单击“添加域名”,然后在弹出的对话框中配置域名参数
d.然后源站类型:源站域名,在下方输入waf的cname域名
- 单击“确定”完成域名的添加,cdn会为加速域名生成专属cname。
如果您的waf是独享模式,需要使用“源站ip”接入cdn,“源站”文本框中请输入为弹性负载均衡绑定弹性公网ip就行
如果您的waf是elb模式,需要使用“源站ip”接入cdn,“源站”文本框中请输入waf实例绑定elb的弹性公网ip就行
- (可选)添加加速域名后,为了保证顺利切换不影响业务,建议你先做测试然后再切换dns解析哈;
- 在dns域名服务商哪里修改解析记录,然后配置cdn提供的cname,如果不会百度如何配置cname;
- 验证cname是否生效,打开windows操作系统中的cmd程序,输入如下指令:
nslookup -qt=cname 加速域名
如果要回显cname,则表明cname配置已经生效啦,如下面这样:
如果您暂时没用cdn和waf,我也建议您按照场景1的方式先接入waf,然后再配置联动;
场景2:加速域名已经接入cdn加速,配置cdn waf联动
如果您的域名已接入cdn加速,那么需要配置cdn waf联动,然后您需要先在waf添加防护域名,“是否已使用代理”选项选“是”,waf才能够对真实源ip进行安全防御;然后把cdn侧加速域名的源站修改waf的cname,cdn才能将流量转发给waf,实现加速和web攻击防御联动;
这个使用也是有限制的:
如果您在cdn侧给加速域名配置了https证书,请同步在waf侧完成证书配置,否则会导致域名无法访问的话;
详细操作步骤
将网站信息(源站服务器的ip、端口等信息)添加到waf。配置如下
- 非标准端口:去勾选
- 是否已使用代理:是。
配置完后,waf会为该域名生成一个专属的cname
建议您在配置好waf后先验证业务是否正常,然后修改cdn源站哈
- 将cdn加速域名的源站地址修改为waf的cname域名
a.登录华为云控制台,在控制台4008云顶国际网站首页中选择“cdn与智能边缘 > cdn”,进入cdn控制台
b.在左侧菜单栏中,选择“域名管理”
c.在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面
d.选择“基本配置”页签
e.在源站配置模块,单击“编辑”,系统弹出“修改源站信息”框框- 类型:源站域名
- 源站:填写waf生成的cname域名
- 回源端口:默认端口
还是一样 如果您的waf是独享模式:要使用“源站ip”接入cdn,“源站”文本框中请输入为弹性负载均衡绑定弹性公网ip;
如果您的waf是elb模式,要使用“源站ip”接入cdn,“源站”文本框中请输入waf实例绑定elb的弹性公网ip;
完成以上配置后,流量经过cdn转发到waf,达到加速和web攻击防护的目的;
- 点赞
- 收藏
- 关注作者
评论(0)