使用CDN后域名解析怎么配置?CNAME指向CDN域名!
把域名接上CDN,说起来就两步:先在CDN那边把域名加上,再去DNS管理后台改个解析记录。但就这“改个解析记录”的活儿,门道不少,搞不好网站还得断会儿线。今儿咱就单聊这个环节——怎么把域名解析里的CNAME指向CDN给你的那个域名。
很多头一回用CDN的朋友,习惯性地在DNS后台找A记录、要IP地址。然后发现CDN控制台死活不给你IP,只给一串看起来像乱码的域名,比如www.example.com.w.kunlunsl.com这种。
这不难理解。CDN在全球有成百上千个节点,给你一个固定的IP,那跟直接用源站有什么区别?用户离这个IP远不远、这个IP当时忙不忙,都不好说。所以CDN给你的是一个CNAME域名,相当于一个“入口代号”。用户访问你的域名时,DNS会根据这个CNAME域名背后的智能调度系统,当场算出来一个离用户最近、负载最轻的节点IP返回回去。
所以核心就一句话:你要做的,就是把你自己的加速域名,通过CNAME记录,指向CDN给你分配的那个专用域名。
动手之前,先看清你域名现在的“房本”
添加CNAME记录之前,有个坑得先绕过去。去你的域名解析控制台看一眼,你要加速的那个子域名(比如www.example.com)底下,现在有没有A记录、MX记录、TXT记录之类的。
CNAME记录在同一条“主机记录”下,跟绝大多数其他记录类型都是互斥的。什么意思?比如你原来www.example.com有一条A记录指向服务器的IP,现在想给www.example.com加一条CNAME记录指向CDN,系统会直接报错,说冲突了,加不上。
这时你就得做个取舍:把原来那条A记录删掉或者暂停掉,才能添加上CNAME记录。很多朋友这时候会犹豫:把A记录删了,网站会不会打不开?只要CNAME记录配置正确,用户的请求会被解析到CDN节点,由CDN去你的源站取内容,这个链路是通的,所以不用担心。但还是那句话,操作前留个心眼,把原记录截图备份,业务低峰期操作,别大中午的搞。如果域名正在线上跑着业务,稳妥起见,可以先拿个子域名(比如test.example.com)配CNAME试试水,验证CDN能正常工作之后,再动主域名。
正戏:CNAME记录到底怎么填
好,现在去你的域名DNS管理后台,找到“解析设置”或“添加记录”,具体怎么填,分几种情况:
第一种,最常见的情况:加速子域名,比如www.example.com
记录类型:选CNAME,没别的选项。
主机记录:只填前缀www,别填完整域名。填完整域名反而不对,系统不认识。
记录值/记录值:把你从CDN控制台复制的那个长域名粘贴进去。注意别带空格,别缺字符。
TTL:默认600秒(10分钟)就行。TTL是DNS记录在各地DNS服务器上的缓存时间,设短了(比如60秒),以后切换回源站时生效快,但会增加DNS查询量;设长了(比如30分钟),DNS解析压力小,但改记录后生效慢。10分钟是个比较通用的折中选择。
第二种,想加速根域名,就是example.com本身不带www
主机记录填@。不过这里有个事儿得提醒你:根域名配CNAME,可能会影响收邮件。因为根域名的MX记录(邮件交换记录)跟CNAME也冲突。如果你的example.com是用来收企业邮件的,把根域名CNAME到CDN上,邮件可能会收不到。所以很多CDN服务商都推荐用子域名(比如www)来加速,根域名老老实实用A记录指向源站,或者用云服务商提供的“显性URL转发”之类的方式处理。
第三种,泛域名,比如*.example.com
想给所有二级域名(a.example.com、b.example.com等)都加速,一个配置搞定,主机记录填*就行。以后没单独配过解析的二级域名,都会按这个CNAME走,自动享受CDN加速。不过注意,如果某个子域名你单独配置了别的记录(比如单独加了A记录),那个子域名的解析会优先,不会受泛域名影响。
配完了,怎么确认到底生效没
填完记录,点保存,CDN并没有立刻开始工作。因为DNS有缓存,全球各地生效需要时间,这个时间长短跟你刚才设置的TTL有直接关系。一般来说,新增记录生效较快,修改记录的话需要等原记录的TTL过期。
怎么看生效了没有?最靠谱的办法不是看CDN控制台那个状态(那个更新有时候会慢半拍),而是自己动手查一下:
Windows用户,打开命令行(cmd),输入:nslookup -qt=cname 你的加速域名
Mac/Linux用户,打开终端,输入:dig 你的加速域名 CNAME
看返回结果里,ANSWER SECTION部分显示的CNAME记录值,是不是跟你刚才在CDN控制台复制粘贴的那个值一模一样。如果一模一样,恭喜,配置就生效了。尽量不要用ping命令去验证,ping返回的是A记录的IP,很多CDN节点对ICMP协议有限制或做了特殊处理,结果不一定准确。
如果等了半天查不到,或者控制台还是显示“待配置”,可以检查下是不是主机记录填错了(比如把www.example.com整个填进去了)、记录值是不是漏了字符、之前冲突的A记录到底删干净了没。另外,如果你的CDN只开通了海外加速,在国内网络环境下去验证,控制台也可能显示未配置,但这对海外用户的实际访问没影响,不用纠结。
CN
EN