做互联网、CDN都少不了去和CNAME打交道,工作中也遇到很多关于CNAME的知识,现在对CNAME做一个总结,为什么要有CNAME,以及CNAME存在的价值是什么,抛砖引玉,纯属个人理解!!!
1、降低多域名、多服务器、多业务的运维成本。通过将域名CNAME到新的地址后,降低权威DNS配置的复杂性,将变化频繁的配置(比如说A记录、MX记录)、功能业务(智能多线、CDN分发)等切割分离,出现故障后排查简单明了,是谁的问题就是谁的问题,而且权威DNS更新后在全球同步是需要时间的,所以在调整上越少越好,目前行业竞争激烈,保证好的用户体验以及网站的高可用性非常重要。
2、多个域名、多种业务解析到同一个主机,同时不影响搜索引擎收录。比如说有多个域名(www、mail、news)服务要对应同一个公网服务器,服务器对外的域名是host.aaaabb.aaaa.aaaa.com.cn(可能公网IP后面对应着服务器集群,而且公网IP有可能会变化),这是一个典型的应用场景,通过将这些域名的CNAME指向host.aaaabb.aaaa.aaaa.com.cn就可以实现这个需求,而且不必去关心CNMAE后服务器的结构和变化,对于业主的维护来说非常简单,同时不影响到搜索引擎对你原域名的收录。
3、解决多线以及CDN分发加速问题。对于多线问题,通过CNAME后,可以在CNAME上做智能DNS,电信的用户走电信的链路、联通的用户走联通的链路,提升用户体验,节约链路成本,对于CDN的分发加速,大多数是通过CNAME加个GSLB(全球负载均衡)来实现,把你的域名CNAME到CDN厂家给你的域名上,剩余的事情就不用操心了,当然也可以自建CDN,自己搭一个GSLB做调度分发。
4、解决高并发下性能负载问题。其实业务分离、CDN分发已经无形解决了一部分负载问题,大的网站并发是很厉害的,为了在解析环节不出问题,就需要买付费DNS,造成成本增高,并且不方便维护,这时你可以CNAME到某一个域名,设置CNAME后域名的NS为自己搭建的DNS,还有种方式可以直接配置forword,这样可以把智能解析的业务压力放在你自己的DNS上,应用场景是灵活千变万化的,万变不离其宗。