前言
在根据业务情况完成添加CDN域名并配置源站后,域名尚未真正接入CDN服务。因此我们还需要将域名解析到特定的CNAME记录上,才能使得终端用户请求时,用户的DNS解析域名能通过CDN智能调度系统访问到自身周边的CDN加速节点。
在本章节,我们将为您介绍「CDN域名的解析配置」。
准备工作
1. 已创建完成的CDN域名。
2. 登录域名所托管的DNS后台,默认情况下,DNS后台即是您购买域名的厂商对应控制台。
配置接入
根据您业务情况的不同,我们将域名解析添加分为两种情况:
情况一:该加速域名当前已在业务中使用,需要将域名及业务迁移到CDN上提供服务,例如需要迁移CDN的是您线上已对外服务的www首页域名。
情况二:该加速域名当前并未在业务上用于对外,调整解析时不会影响线上业务,普遍为加速域名和原服务域名不相同的情况。
提示:本文及后续提到的加速域名是否被使用,均指该独立域名或独立子域名,例如:线上有 example.com 和 www.example.com 域名正在提供服务,但线上并未使用过子域名 cdn.example.com 对外服务,则视为加速域名 cdn.example.com 并未在业务中对外服务。
我们将CDN接入解析的过程分为三个步骤:
- 步骤一:灰度验证服务可用性(可选)
- 步骤二:操作CNAME配置
- 步骤三:检查解析配置是否生效(可选)
如果您是情况一(加速域名正在使用中)推荐您先按照【步骤一】,再执行【步骤二】,来确保线上业务的平滑迁移。
如果您是情况二(加速域名未在线上使用中)可以忽略【步骤一】,跳转【步骤二】。
操作流程如图所示,接下来将对每个步骤进行详细介绍:
步骤一:灰度验证服务可用性
在CDN域名配置完成后,我们可以在本机将域名静态解析到某个CDN节点上,用于验收经过CDN加速后,业务是否正常服务,网站加载状态是否正常。
例如当您源站配置有误时,或者当您业务中需要 https 访问但添加域名后未配置证书时,灰度验证将帮助您发现业务加载异常的问题。
获取CDN节点IP
1. 前往阿里云CDN控制台的域名管理列表,复制加速域名对应的CNAME记录值。
2. 获取CNAME对应的IP地址。(注意:以下通过ping命令得到的IP地址仅作为参考,实际以ping您的真实CNAME地址得到的IP地址为准。)
- Windows系统:打开终端命令窗口,在命令行中ping CNAME地址,得到ping的IP地址。
- Mac 系统:打开终端命令窗口,在命令行中dig CNAME地址,得到dig的IP地址。
静态绑定解析
1. 在本步骤中,我们需要在您的本地电脑绑定hosts文件,用于将访问域名解析到某个特定IP上。
2. 您需要将步骤2得到的IP地址和加速域名绑定到电脑本地hosts文件中,绑定顺序为IP地址在前,加速域名在后,顺序不能颠倒。
3. 本文以加速域名为 example.com ,生成的CNAME地址为 example.com.w.kunlunsl.com ,ping example.com.w.kunlunsl.com 得到IP地址为 192.168.0.1 为例,为您介绍绑定方法。
- Windows系统:文件路径位置为C:\Windows\System32\drivers\etc\hosts,下图为绑定成功的示例图。
- Mac系统:文件路径位置为访达>文件夹>/etc/hosts,下图为绑定成功的示例图。
本地访问测试
1. 绑定解析后,您可以在浏览器中访问该域名下的站点内容,或者验证某个资源是否可以正常访问。
2. 如果您不确定hosts文件是否配置正确,您可以打开浏览器,访问域名下的资源,通过浏览器自带的开发者工具(chrome右键-检查-network)查看服务端的响应IP地址。
- 如果Remote Address后的IP和您在hosts文件中绑定的IP一致,表示配置正确,您可以在域名解析服务商处配置CNAME。
- 如果Remote Address后的IP和您在hosts文件中绑定的IP不一致,表示配置不正确,您需要检查hosts文件中绑定的IP地址是否正确,确保该IP地址是CNAME地址的IP。
成功访问加速域名后,如果您需要验证其它功能,可在电脑本地进行相应的验证,验证CDN加速后访问符合预期后,再操作步骤二。
步骤二:操作CNAME配置
操作步骤二时,默认您已知悉并参考步骤一完成了灰度测试,或者,您添加的加速域名当前未在业务中对外服务。
配置时,我们需要
获取您加速域名对应的CNAME值
1. 前往阿里云CDN控制台的域名管理列表,复制加速域名对应的CNAME记录值。
2. 打开您购买域名的厂商对应控制台,找到配置解析的位置。
3. 点击添加记录后,需要填写的内容如下:
- 选择记录类型为CNAME
- 填写主机记录:
主机记录中仅需填写 加速域名去除主域名部分后的前缀即可,注意您例如:
- 当您需要对 cdn.example.com 加速时 :主机记录填写其前缀 cdn 即可。
- 当您需要对 video.cdn.example.com 加速时 :主机记录填写其前缀 video.cdn 即可。
- 当您需要对主域名 example.com 加速时 : 主机记录需要填写 @ 符号。
- 当您需要对泛域名 *.example.com 加速时 : 主机记录需要填写 * 符号(仅限CDN域名创建时,域名中填写的是泛域名 *.example.com 场景,如果您添加的是特定域名,请参考前3种配置示例)。
- 填写记录值:将您在CDN控制台上复制加速域名对应的CNAME记录值拷贝即可。
- 其他配置(解析线路/TTL)默认即可,您可以不做修改。
- 填写完毕后点击确认即可
- 如果提交成功,您可以等待10分钟左右,待DNS解析生效后参考步骤三验证是否CDN加速成功。
- 如果提交时报错“解析记录冲突”(例如A记录冲突或MX记录冲突),您需要参考下文中的解析冲突处理进行操作。
常见厂商及CNAME配置方法您也可以参考产品文档说明:https://help.aliyun.com/document_detail/27144.html
解析冲突处理
解析冲突一般是指该域名之前已经被指向某个位置,如果再添加CNAME记录会导致前后冲突,DNS无法判断域名最终应该访问到哪里,常见的冲突类型为A记录或MX记录:
- A记录冲突(常见):该域名已经被解析到某个源站IP地址上,例如之前的架构是用户直接访问源站,后续需要通过CDN访问,由CDN回源拉取资源。如果您已通过步骤一灰度验证域名通过CDN访问原资源正常,您可以对原有的A记录进行修改,调整该冲突主机名对应的记录类型和记录值,解析修改生效时间一般在10分钟左右。
- CNAME记录冲突:同一个域名添加两条CNAME记录时,部分厂商会按照轮询规则解析、不提示冲突,也有厂商不允许同时存在两条不同CNAME记录。如果您需要将该加速域名全部流量切至阿里云CDN访问,建议您在原有的CNAME记录上修改,只保留一条CNAME记录即可。
- MX记录冲突:触发MX记录冲突时,代表该域名已配置过MX记录(例如直接添加已有MX记录的主域名),按照RFC标准协议CNAME优先级最高,所以在解析请求过程中,会优先返回CNAME解析记录结果,这样设置的结果导致用户无法请求到MX记录,直接对客户的邮箱业务造成使用影响。建议您考虑添加其他加速域名用于访问,或者配置MX转发规则,详情可参考文档:https://help.aliyun.com/document_detail/39787.html
步骤三:检查解析配置是否生效
解析配置完成后,一般在10分钟左右生效,部分情况下生效时间可能晚于10分钟,但一般不超过30分钟。
- 方法一:一键验证
- 前往阿里云CDN控制台的域名管理列表。
- 选择目标域名,将鼠标指向加速域名的CNAME状态处,弹出CNAME配置向导弹框。
- 单击打开配置向导后,再单击点击查询,一键验证。
提示:控制台解析验证通过探测的方式查询解析是否正确,可能存在解析获取延迟或获取结果波动的情况,如果您通过其他方式验证已经访问到CDN加速时,可以忽略控制台提示。另外,如果您仅配置了区域解析,可能会导致探测无法感知您的解析结果,不影响访问时提示可忽略。
- 方法二:通过ping命令验证
- 打开Windows操作系统中的cmd程序(MacOS操作系统可以打开启动台-其他-终端)。
- 在命令行中ping加速域名,如果返回的解析结果和CDN控制台上该加速域名的CNAME值一致,则表示CDN加速已经生效。
CDN解析原理
完成上述配置后,您的域名就正式接入了CDN进行服务,那么此时终端用户访问时,DNS是如何工作的呢?
假设您的加速域名为 www.aliyundoc.com,接入CDN开始加速服务后,当终端用户在北京发起HTTP请求时,处理流程如下图所示。
- 当终端用户向 www.aliyundoc.com 下的指定资源发起请求时,首先向Local DNS(本地DNS)发起请求域名 www.aliyundoc.com 对应的IP。
- Local DNS检查缓存中是否有 www.aliyundoc.com 的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向网站授权DNS请求域名www.aliyundoc.com 的解析记录。
- 当网站授权DNS解析 www.aliyundoc.com 后,返回域名的CNAME www.aliyundoc.com.example.com。
- Local DNS向阿里云CDN的DNS调度系统请求域名www.aliyundoc.com.example.com的解析记录,阿里云CDN的DNS调度系统将为其分配最佳节点IP地址。
- Local DNS获取阿里云CDN的DNS调度系统返回的最佳节点IP地址。
- Local DNS将最佳节点IP地址返回给用户,用户获取到最佳节点IP地址。
- 用户向最佳节点IP地址发起对该资源的访问请求。
- 如果该最佳节点已缓存该资源,则会将请求的资源直接返回给用户(图中步骤8),此时请求结束。
- 如果该最佳节点未缓存该资源或者缓存的资源已经失效,则节点将会向源站发起对该资源的请求。获取源站资源后结合用户自定义配置的缓存策略,将资源缓存到CDN节点并返回给用户(图中步骤8),此时请求结束。
结束
至此,CNAME解析添加的步骤已经结束。如果您在步骤一的灰度验证中访问未达到预期,可在配置调整达到预期后再进行解析记录的操作调整:
- 源站资源访问异常时,可以参考上一章节域名添加中的源站配置说明。
- 如果业务需要HTTPS访问,或需要调整缓存配置,您可以参考后续章节继续学习。
在下个章节中。我们将共同学习「HTTPS相关功能及配置」,如果您的业务有相关访问诉求,可以继续关注本系列的实践指导。
更多边缘云产品资讯欢迎访问【阿里云边缘云】或扫码关注【阿里云Edge Plus】
边缘云 开启分布式云网融合新时代