本文将通过直观的示例,详细介绍阿里云CDN的工作机制,以及配置过程中所需的关键设置及其功能。旨在帮助您更高效、快捷地完成阿里云CDN服务的配置与启用。
说明 本文以www.example.com
作为示例中用户访问的域名,10.10.10.1
作为示例中域名对应的服务器IP。
阿里云CDN是如何帮助加速的
如果您对阿里云CDN的工作原理尚不明确,建议您花费两分钟时间阅读“阿里云CDN是如何帮助加速的”这一部分内容。当然,如果您已掌握CDN的原理,您可以直接跳过该部分,开始进行阿里云CDN的配置。
阿里云CDN是如何帮助加速的
当我们通过浏览器输入一个URL时,最终会在屏幕上显示一个网页、一段视频、一首音乐或一张图片。这一过程背后涉及了多种软件和硬件的解析与转发操作,实际上相当复杂。接下来,本文将通过一个简单的请求示例,介绍阿里云CDN是如何在这个请求流程中起到加速作用的。
一、基本的请求过程
现在,我们希望通过访问www.example.com
这一域名获取一张图片。然而,浏览器无法直接通过该域名定位到图片所在服务器的地址。在这种情况下,浏览器首先需要访问DNS服务器,以获取与该域名对应的IP地址10.10.10.1
。接着,浏览器将通过该IP地址找到相应的服务器,最终从服务器中获取所需的图片。
二、引入阿里云CDN的请求过程
随着越来越多的用户通过www.example.com
这一域名访问图片,访问请求的数据量不断增加。由于服务器配置、网络环境等多种因素的影响,图片的访问速度将日益变慢。在此背景下,阿里云CDN作为一种有效的解决方案,能够显著加速请求速度。
阿里云CDN可视作一个庞大的缓存服务,该服务在网络拓扑逻辑中位于服务器和用户之间(图中紫色部分就是引入的阿里云CDN)。当用户发起请求并到达阿里云CDN时,系统将首先查询是否存在对应的缓存图片。如果缓存中存在该图片,则将直接返回缓存的图片给浏览器,而无需访问服务器;若缓存中不存在对应的图片,则会通过阿里云CDN向服务器发起请求,获取到图片后返回给用户,并且将其存储在阿里云CDN中,以便于下一个访问该图片的请求能够快速获取。
说明 加速请求的访问速度只是阿里云CDN的基础功能,更多关于阿里云CDN的介绍和高阶功能,敬请参见什么是阿里云CDN。
阿里云CDN是在目标服务器的架构之外进行加速,对目标服务器不会产生任何侵入,也无需修改任何业务代码。
正常的请求流程远比上述流程复杂,此处为了方便用户理解阿里云CDN的工作原理,简化了大部分的细节。
快速接入阿里云CDN
阿里云CDN相较于其他加速方式,其优势之一就是在于对服务器的非侵入性,用户无需修改任何业务代码,仅需通过几个简单的配置即可实现加速。接下来,本文将通过上述两个请求详细介绍阿里云CDN的配置过程,并阐述每个配置的具体作用。
说明 在正式开始接入阿里云CDN之前,您需要先完成以下两个步骤:
您需要拥有一个阿里云账号并完成实名认证,详情敬请参考账号注册和实名认证。
您需要在账号里先开通CDN服务,详情敬请参考开通CDN服务。
一、添加域名和源站
配置域名
为了使您的域名享受到加速服务,需要将您的域名作为加速域名配置在阿里云CDN里。只有完成这一步骤,阿里云CDN才能识别并加速您配置的域名。
添加域名
登录CDN控制台。
在左侧导航栏,单击域名管理。
单击添加域名,在域名信息页面,配置加速区域、加速域名和业务类型,其他参数均保持默认。
说明 加速域名是指接入阿里云CDN、用于加速的网站域名或资源域名,也是终端用户实际访问的域名。在上述示例的场景下,此处填写www.example.com
。
加速区域请根据自身业务的实际情况选择,本次演示选择仅中国内地作为加速区域。
业务类型根据自身业务的实际情况选择,如果不清楚,可以选择“图片小文件”。
更多关于配置项的说明,敬请参见配置域名信息。
验证域名归属权
为了确保您添加的域名确实归您所有,阿里云CDN需要进行域名归属权验证。如果您之前已经完成过该验证,或在配置加速域名时没有收到验证提示,可以跳过此步骤。
验证域名归属权
重要 不论选择哪种验证方法,在验证完成之前,请不要关闭验证页签。
DNS解析验证(推荐)
在添加域名页面的验证页签,单击方法1:DNS解析验证,获取主机值、记录值。
在您的域名解析服务商处,添加TXT记录(以下以阿里云的云解析为例介绍TXT记录的添加方法,其他域名解析服务商(例如:腾讯云、新网等)的配置方法类似)。
配置TXT记录
登录云解析DNS控制台
在域名解析页面,找到加速域名的主域名example.com
,并单击右侧的解析设置。
单击添加记录,记录类型选择为TXT,填写步骤1中阿里云CDN提供的主机记录、记录值,其余参数保持为默认填写即可。
单击确定,完成添加。
等待TXT解析生效,返回CDN控制台的验证页签,单击点击验证,完成验证。
如果系统提示“验证失败”,请检查TXT记录的填写是否正确,并在DNS记录生效后重新进行验证。以加速域名www.example.com
为例,检查TXT记录是否生效或正确的方法如下:
Windows系统
在系统内打开cmd命令界面,输入nslookup -type=TXT verification.example.com,根据当前的TXT结果,可以查看解析记录是否生效或正确。
macOS/Linux系统
在命令界面内,输入nslookup -type=TXT verification.example.com,根据当前的TXT结果,可以查看解析记录是否生效或正确。
说明 在nslookup命令中,类型是TXT,验证的域名则是将原域名的主机名替换为verification。例如,如果您的加速域名是help.aliyun.com
,那么您需要验证的域名则是verification.aliyun.com
。
域名首次配置TXT解析记录后将会实时生效,修改TXT解析记录通常会在10分钟后生效(具体生效时间长短取决于域名DNS解析配置的TTL时长,默认为10分钟)。
如果Linux系统没有安装nslookup命令程序,centos系:yum install bind-utils;Ubuntu系:apt-get install dnsutils 执行命令自动安装。
文件验证
在验证页面,单击方法2: 文件验证。
单击verification.html
,下载验证文件。
手动将验证文件上传到您主域名服务器(例如您的ECS、OSS、CVM、COS、EC2等)的根目录。例如:当前加速域名为www.example.com
,您需要将该文件上传至 example.com
的根目录下。
确保可通过http://example.com/verification.html
访问到该文件后,即可点击验证进行验证.
阿里云CDN后台将访问您服务器中http://example.com/verification.html
文件链接进行验证。
配置源站信息
源站是指您运行业务的网站服务器。您需要在阿里云CDN中配置源站信息,以便在阿里云CDN未缓存数据时,能够访问您的服务器以获取资源。
配置源站信息
完成域名业务信息配置后,在源站信息区域单击新增源站信息。
在新增源站信息对话框中,选择源站的类型,并填写源站地址。
根据您源站的实际情况填写端口,如果不清楚或者没有特殊配置,请保持默认值。
二、配置CNAME
在未接入阿里云CDN之前,当用户输入域名后,请求会直接流向指定的服务器;接入阿里云CDN之后,用户的请求首先会被发送到最近的阿里云CDN节点,再由阿里云CDN确定是否需要调用服务器回源。为了确保请求链路能够从直接连接源服务器顺利切换到通过阿里云CDN进行访问,您需要进行CNAME配置。
CNAME记录是一种DNS记录类型,用于将一个域名指向另一个域名,更多关于CNAME的介绍,敬请参考CNAME记录简介。
在DNS服务中配置CNAME
前往阿里云CDN控制台的域名管理列表,找到之前添加的域名,复制域名对应的CNAME值(如果此处值为空,请稍等五秒之后刷新重试)。
在DNS服务器中配置CNAME记录。不同DNS服务商配置CNAME域名解析的方法不同,请以实际情况为准。本文以阿里云和腾讯云两大DNS服务商为例。
阿里云配置CNAME方法
如果您的DNS服务商是阿里云,您可以根据以下步骤完成CNAME配置。
使用加速域名所在的阿里云账号,登录云解析DNS控制台
在域名解析页面,找到加速域名的主域名example.com
,并单击右侧的解析设置。
单击添加记录,添加CNAME记录。
记录类型选择CNAME。
重要 主机记录就是域名的前缀。www.example.com
的主机记录是www
;如果您的加速域名就是主域名example.com
,那么对应的主机记录填写@。
对于同一个主机名,CNAME记录和A记录是相互冲突,只能有一个存在。如果您要加速的域名存在主机记录相同的A记录,需要将A记录暂停或删除,才能配置CNAME记录。
暂停A记录,配置CNAME的时候,会导致域名短暂的不可访问,为减少对您域名的影响,请根据您日常流量的变化情况,在合适的时间进行配置。
单击确认,完成添加。
腾讯云配置CNAME方法
如果您的DNS服务商是腾讯云,您可以根据以下步骤完成CNAME配置。
登录DNSPod控制台。
在对应域名的域名解析页,单击添加记录,添加CNAME记录。
参数 | 说明 | 填写样例 |
主机记录 | |
说明 域名解析设置是针对您注册的域名(如aliyundoc.com)或域名的左侧部分进行解析设置。配置主机记录时,您仅需要填写要解析的部分(如解析example.aliyundoc.com时填写example)。 |
记录类型 | 选择CNAME。 | CNAME |
线路类型 | 选择“默认”类型。 | 推荐保持默认 |
记录值 | 输入加速域名对应的CNAME记录值。
说明 一级域名(如example.aliyundoc.com)和二级域名(如www.example.aliyundoc.com)对应的CNAME值不同。如果您要加速二级域名,需要将二级域名也添加到CDN上并解析到对应的CNAME记录值,或者在CDN上添加泛域名,泛域名的CNAME可以被二级域名使用。添加泛域名或二级域名,请参见添加加速域名。 | www.example.com.w.kunlunsl.com
|
权重 | 无需填写。 | 不涉及 |
MX | 无需填写。 | 不涉及 |
TTL | TTL为缓存时间,数值越小,修改记录后各地生效时间越快。 | 推荐保持默认 |
单击保存,完成添加。
验证配置的CNAME是否生效。
一键验证
前往阿里云CDN控制台的域名管理列表。
选择目标域名,将鼠标指向加速域名的CNAME状态处,状态为已配置时,则表示CNAME配置已生效。
通过nslookup命令验证
打开cmd程序(Windows)、终端(macOS/Linux)。
输入nslookup -type=CNAME 加速域名(例如nslookup -type CNAME www.example.com ),如果返回的解析结果和CDN控制台上该加速域名的CNAME值一致,则表示配置的CNAME已经生效。
三、配置HTTPS证书
如果您的应用在配置阿里云CDN之前已经支持HTTPS访问,请务必进行HTTPS证书的配置,否则您的域名将不再支持HTTPS访问。
如果您的域名之前就不支持HTTPS访问,并且暂时也不打算支持HTTPS访问,那么您可以直接跳过该部分。
配置HTTPS证书
重要 开启HTTPS将产生HTTPS请求数,HTTPS请求数计费不能使用CDN流量包抵扣,请确保您的账户余额充足,或购买HTTPS请求包,避免欠费导致CDN停止服务。详情敬请参见静态HTTPS请求数。
登录CDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,找到目标域名,单击操作列的管理。
在指定域名的左侧导航栏,单击HTTPS配置。
在HTTPS证书区域,单击修改配置。
在HTTPS设置界面,打开HTTPS安全加速开关,并配置证书相关参数。
验证HTTPS配置是否生效
更新HTTPS证书1分钟后将全网生效。您可以使用HTTPS方式访问资源,如果浏览器(Chrome浏览器)中URL旁边出现下方的HTTPS标识,表示HTTPS安全加速已生效。证书配置完成后,您需要留意证书过期时间并在证书过期前手动配置新的证书。
四、验证阿里云CDN是否生效
验证阿里云CDN
通过ping或dig命令来判断
Windows :按下Windows键+R键,在弹出的运行输入框里,输入cmd,点击确定,打开cmd命令行。
macOS :打开“终端”。
执行检查命令。
在窗口中输入 "ping" + 加速域名,例如ping www.example.com 。
在窗口中输入 "dig" + 加速域名,例如dig www.example.com。
如果得到的结果是配置CNAME值www.example.com.w.kunlun.com
,则证明阿里云CDN已经生效。
如果得到的是一个IP(如上图),则可以使用阿里云CDN自带的IP检测工具检查。
判断IP是否为阿里云CDN节点的IP地址
登录CDN控制台。
在左侧导航栏,单击工具服务。
选择IP检测,单击去使用。
输入您要检测的IP,单击开始检测。
说明 支持检测IPv4和IPv6地址。一次最多可查询20个IP地址,多个IP地址使用英文逗号(,)间隔。
查看检测结果。
通过请求的Response Header来判断
windows :按下windows键+R键,在弹出的运行输入框里,输入cmd,点击确定,打开cmd命令行。
mac :打开“终端”。
在窗口中输入 "curl -I" + 加速域名资源,例如ping www.example.com/10.JPG
。
当相应头结果中有X-Cache
、X-Swift-SaveTime
、X-Swift-CacheTime
时,证明阿里云CDN已经生效。
至此,阿里云CDN的主要配置已完成,您的网站现在可以通过阿里云CDN实现访问加速。但是,为了确保网站的安全稳定运行,我们强烈建议您进一步设置阿里云CDN的安全防护措施及缓存策略。
阿里云CDN的必要配置
一、配置安全防护
您的域名可能遭受恶意攻击或流量盗刷,这会导致突发的高带宽使用或大量数据传输,进而产生高额费用。因此,强烈建议您配置适当的安全防护措施以提前避免此类风险。
配置安全防护
开启日志监控
阿里云CDN支持离线日志和实时日志,通过日志分析,您可以快速的发现业务中的问题和安全上的问题,以便及时做出相应的调整。更多关于日志的信息,敬请参见阿里云CDN日志。
开启Referer防盗链
Referer防盗链基于HTTP请求头中的Referer字段,通过设置黑白名单来控制访问,防止资源被非法盗用。
常用的一种配置方法是设置Referer防盗链的白名单,仅允许referer为指定域名(例如:与您的网站业务系统相关的域名)的访问请求,以实现对访客的身份识别和过滤,防止网站资源被非法盗用。详细请参见配置Referer防盗链。
设置阿里云CDN实时宽带监控
您可以使用云监控产品的云产品监控功能,设置对阿里云CDN产品下指定域名的带宽峰值监控,达到设定的带宽峰值后将会给管理员发送告警,便于更加及时地发现潜在风险。详情敬请参见设置流量监控告警。
更多关于安全防护配置的选项,请参见下方数据:
更多的安全防护策略
访问控制
访问控制措施 | 功能说明 |
配置URL鉴权 | URL鉴权功能通过阿里云CDN节点与您的资源站点配合,能够形成更为安全可靠的源站资源防盗方法。详细请参见配置URL鉴权。 |
配置远程鉴权 | 远程鉴权功能通过阿里云CDN节点将用户请求转发至您指定的鉴权服务器,由鉴权服务器对用户请求进行校验,从而可以更严格地限制资源被非授权用户访问。详细请参见配置远程鉴权。 |
配置IP黑白名单 | 恶意攻击或者流量突增行为发生以后,您可以通过实时日志分析功能查看当前是否存在访问较为高频的IP地址,如果识别出恶意IP地址,那么您可以使用IP黑白名单功能封禁这些恶意IP地址。详细请参见配置IP黑白名单。 |
配置UA黑白名单 | 恶意攻击或者流量突增行为发生以后,您可以通过实时日志分析功能查看当前恶意访问行为是否来自某些特定的User-Agent,如果识别出特定的User-Agent,那么您可以使用UA黑白名单功能实现对恶意访问行为的封禁。详细请参见配置UA黑白名单。 |
流量管理
流量管理项 | 功能说明 |
设置带宽上限 | 如果您想要限制域名的带宽使用上限,可使用带宽封顶功能来限制域名的带宽上限。(达到设置的带宽阈值之后,阿里云CDN将停止为该域名提供加速服务,且该域名会被解析到无效地址)以避免产生过高的账单。详细请参见带宽封顶。 |
设置单请求限速 | 单请求限速功能可以对用户访问到CDN节点的所有请求进行下行速率限速。单请求限速功能比较经常用于配合客户网站的运营活动,例如:游戏新版本发布场景,通过配置单请求限速功能,可以压制加速域名的全网带宽峰值。详细请参见配置单请求限速。 |
设置带宽限速 | 如果您需要对域名使用的阿里云CDN带宽做限速,在满足日带宽峰值大于10 Gbps的情况下,可以提交工单申请后台配置。
重要 带宽限速设置的是加速域名的全网总带宽上限,考虑到限速的精确性,带宽限速值必须大于等于10 Gbps。 达到带宽上限(例如:10 Gbps)之后,阿里云CDN将会对加速域名限速,限速之后用户的访问速度会变慢(每个请求的访问速度都会降低),也可能会出现丢包。 由于带宽限速是通过加速域名的实时监控数据来触发的,而加速域名的实时监控数据存在一定延迟(大约10分钟),因此加速域名的实际带宽达到限速阈值大约10分钟后,域名才会被限速(此时加速域名的实际带宽很可能会大于限速阈值)。
|
说明 如果您的域名遭遇了恶意攻击,或者出现高额账单,您可以通过相关文档快速地进行排查和止损,详细敬请参见防范流量盗刷最佳实践。
二、推荐配置
成功添加加速域名后,建议您进行缓存过期时间、页面优化等功能的配置,可有效提升CDN的缓存命中率和访问性能。
推荐配置
提高缓存命中率与速度
访问速度慢通常与缓存命中率低有强关联性,推荐您配置缓存过期时间、过滤参数功能提升缓存命中率。
场景 | 说明 | 配置 |
缓存命中率低、访问速度慢 | 设置的缓存时间过短或未设置缓存规则,导致频繁回源站获取资源。合理配置缓存过期时间,可有效提升资源的缓存命中率,提升访问性能。 | 配置缓存过期时间 |
默认客户端回源获取资源时需精确匹配URL中? 之后的参数。开启忽略参数功能后,客户端回源获取资源时会去除URL请求中? 之后的参数,有效提高文件缓存命中率,减少回源次数。 | 忽略参数 |
提高CDN的访问性能
为防止域名因受到攻击等原因产生突发高带宽,您可以设置监控报警,实时监控带宽的变化情况,或者通过带宽封顶功能,设置带宽上限,防止产生过高的带宽。
场景 | 说明 | 配置 |
限制带宽过高 | 通过带宽封顶功能,设置带宽上限,当检测到某个统计周期的带宽超出您设置的带宽上限时,CDN将停止为该域名提供加速服务,且该域名会被解析到无效地址offline.***.com ,无法被继续访问。 | 配置带宽封顶 |
通过在云监控产品中创建报警规则,实现对网络带宽的报警监控,帮助您及时了解带宽异常并快速进行处理。 | 设置报警 |
资源预热
在您的网站或者资源接入阿里云CDN之后,用户第一次访问网站或资源的时候,系统会回源站拉取资源并缓存在CDN节点,这个过程会影响第一次访问资源的速度。您可以提前使用预热的功能,提前将资源缓存到CDN节点,提高用户的访问速度。具体操作,敬请参见刷新和预热资源。