域名系统 – CNAME应该用于子域吗?

前端之家收集整理的这篇文章主要介绍了域名系统 – CNAME应该用于子域吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我管理多个当前具有以下DNS配置的网站:
example.com      - A Record - Production Server IP
test.example.com - A Record - Test Server IP
www.example.com  - CNAME    - example.com
beta.example.com - CNAME    - test.example.com
dev.example.com  - CNAME    - test.example.com

这是否恰当地使用了CNAME记录?我在网上看了一下并没有找到明确的答案.有些人声称CNAME记录不好(但是,他们不清楚为什么会这样)并提出以下设置:

example.com      - A Record - Production Server IP
test.example.com - A Record - Test Server IP
www.example.com  - A Record - Production Server IP
beta.example.com - A Record - Test Server IP
dev.example.com  - A Record - Test Server IP

哪一个是更好的方法(以及为什么)?

注意:子域不需要自己的MX记录,因此这不是问题.

解决方法

是的,这是对CNAME的恰当使用.在我参与的讨论中,争论倾向于这样:

反对CNAME:

>存在(微小的)性能损失,因为下游DNS缓存需要执行2次DNS查找,一次用于CNAME,一次用于CNAME指向的A-Record.
>关于CNAME具有较少“权威”或兼容性问题的模糊,虚假论点.

支持CNAME:

>它们在硬件(物理服务器)和服务之间提供干净的抽象.
>它们简化了DNS管理 – 当服务器移动时,您只需要更改一条记录.

在尝试了几种不同的方法之后,我现在拥有了个人喜爱的风格.它是:

>每个物理服务器一个记录; TTL相当低(可能是30分钟);给服务器一个human-friendly name.
>每个服务一个CNAME; TTL很高(可能是24小时);指向上面的服务器名称.
>作为上述规则的唯一例外,域根是一个A-Record,指向webserver / web负载均衡器. (@必须是A记录.)

我发现这个设置很好用.它为CNAMES提供额外的DNS查找;如果服务器崩溃,我仍然可以相当快地更改公共DNS.

这是BIND语法中的(即兴)示例:

;name     ttl   class rr     value 
server01  30m   IN    A      192.168.0.3
server02  30m   IN    A      192.168.0.4

webmail   24h   IN    CNAME  server01
extranet  24h   IN    CNAME  server02
ftp       24h   IN    CNAME  server02

猜你在找的HTML相关文章