头图

作者:辰舒
章节内容:如何配置解析记录,已有CNAME/A记录时如何配置,如何检查解析配置是否生效,解析基本原理

前言

上个章节中我们学习了如何根据业务情况添加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为例,为您介绍绑定方法。
  4. Windows系统:文件路径位置为C:\Windows\System32\drivers\etc\hosts,下图为绑定成功的示例图。
    图片
  5. Mac系统:文件路径位置为访达>文件夹>/etc/hosts,下图为绑定成功的示例图。
    图片

    本地访问测试

  6. 绑定解析后,您可以在浏览器中访问该域名下的站点内容,或者验证某个资源是否可以正常访问。
  7. 如果您不确定hosts文件是否配置正确,您可以打开浏览器,访问域名下的资源,通过浏览器自带的开发者工具(chrome右键-检查-network)查看服务端的响应IP地址。
  8. 如果Remote Address后的IP和您在hosts文件中绑定的IP一致,表示配置正确,您可以在域名解析服务商处配置CNAME。
    图片
  9. 如果Remote Address后的IP和您在hosts文件中绑定的IP不一致,表示配置不正确,您需要检查hosts文件中绑定的IP地址是否正确,确保该IP地址是CNAME地址的IP。

成功访问加速域名后,如果您需要验证其它功能,可在电脑本地进行相应的验证,验证CDN加速后访问符合预期后,再操作步骤二。

步骤二:操作CNAME配置

操作步骤二时,默认您已知悉并参考步骤一完成了灰度测试,或者,您添加的加速域名当前未在业务中对外服务。

配置时,我们需要

  • 获取您加速域名对应的CNAME值

前往阿里云CDN控制台的域名管理列表,复制加速域名对应的CNAME记录值。
图片
打开您购买域名的厂商对应控制台,找到配置解析的位置。
图片
点击添加记录后,需要填写的内容如下
图片

  1. 选择记录类型为CNAME
  2. 填写主机记录:
    主机记录中仅需填写 加速域名去除主域名部分后的前缀即可,注意您例如:

    • 当您需要对 cdn.example.com 加速时 :主机记录填写其前缀 cdn 即可。
    • 当您需要对 video.cdn.example.com 加速时 :主机记录填写其前缀 video.cdn 即可。
    • 当您需要对主域名 example.com 加速时 : 主机记录需要填写 @ 符号。
    • 当您需要对泛域名 .example.com 加速时 : 主机记录需要填写 符号(仅限CDN域名创建时,域名中填写的是泛域名 *.example.com 场景,如果您添加的是特定域名,请参考前3种配置示例)。
  3. 填写记录值:将您在CDN控制台上复制加速域名对应的CNAME记录值拷贝即可。
  4. 其他配置(解析线路/TTL)默认即可,您可以不做修改。
  5. 填写完毕后点击确认即可

    • 如果提交成功,您可以等待10分钟左右,待DNS解析生效后参考步骤三验证是否CDN加速成功。
    • 如果提交时报错“解析记录冲突”(例如A记录冲突或MX记录冲突),您需要参考下文中的解析冲突处理进行操作。

常见厂商及CNAME配置方法您也可以参考产品文档说明:https://help.aliyun.com/docum...

解析冲突处理

解析冲突一般是指该域名之前已经被指向某个位置,如果再添加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/docum...

步骤三:检查解析配置是否生效

解析配置完成后,一般在10分钟左右生效,部分情况下生效时间可能晚于10分钟,但一般不超过30分钟。

  • 方法一:一键验证

    • 前往阿里云CDN控制台的域名管理列表。
    • 选择目标域名,将鼠标指向加速域名的CNAME状态处,弹出CNAME配置向导弹框。
    • 单击打开配置向导后,再单击点击查询,一键验证。

小提示:控制台解析验证通过探测的方式查询解析是否正确,可能存在解析获取延迟或获取结果波动的情况,如果您通过其他方式验证已经访问到CDN加速时,可以忽略控制台提示。另外,如果您仅配置了区域解析,可能会导致探测无法感知您的解析结果,不影响访问时提示可忽略。

  • 方法二:通过ping命令验证

    • 打开Windows操作系统中的cmd程序(MacOS操作系统可以打开启动台-其他-终端)。
    • 在命令行中ping加速域名,如果返回的解析结果和CDN控制台上该加速域名的CNAME值一致,则表示CDN加速已经生效。

    图片

CDN解析原理

完成上述配置后,您的域名就正式接入了CDN进行服务,那么此时终端用户访问时,DNS是如何工作的呢?

假设您的加速域名为www.aliyundoc.com,接入CDN开始加速服务后,当终端用户在北京发起HTTP请求时,处理流程如下图所示。
图片

  1. 当终端用户向www.aliyundoc.com下的指定资源发起请求时,首先向Local DNS(本地DNS)发起请求域名www.aliyundoc.com对应的IP。
  2. Local DNS检查缓存中是否有www.aliyundoc.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向网站授权DNS请求域名www.aliyundoc.com的解析记录。
  3. 当网站授权DNS解析www.aliyundoc.com后,返回域名的CNAME www.aliyundoc.com.example.com。
  4. Local DNS向阿里云CDN的DNS调度系统请求域名www.aliyundoc.com.example.com的解析记录,阿里云CDN的DNS调度系统将为其分配最佳节点IP地址。
  5. Local DNS获取阿里云CDN的DNS调度系统返回的最佳节点IP地址。
  6. Local DNS将最佳节点IP地址返回给用户,用户获取到最佳节点IP地址。
  7. 用户向最佳节点IP地址发起对该资源的访问请求。

    • 如果该最佳节点已缓存该资源,则会将请求的资源直接返回给用户(图中步骤8),此时请求结束。
    • 如果该最佳节点未缓存该资源或者缓存的资源已经失效,则节点将会向源站发起对该资源的请求。获取源站资源后结合用户自定义配置的缓存策略,将资源缓存到CDN节点并返回给用户(图中步骤8),此时请求结束。

结束

至此,CNAME解析添加的步骤已经结束。如果您在步骤一的灰度验证中访问未达到预期,可在配置调整达到预期后再进行解析记录的操作调整:

  • 源站资源访问异常时,可以参考上一章节域名添加中的源站配置说明。
  • 如果业务需要HTTPS访问,或需要调整缓存配置,您可以参考后续章节继续学习。
    在下个章节中。我们将共同学习HTTPS相关功能及配置,如果您的业务有相关访问诉求,可以继续关注本系列的实践指导。

EdgePlus
1 声望0 粉丝