A
记录数少点好还是几十条好CNAME
,还是反之?
每个唯一 IP 对应一个(或几个) A 记录,每个 A 记录对应多个 CNAME 记录:
@ 3600 IN A 123.123.123.123
a 3600 IN CNAME @
b 3600 IN CNAME @
c 3600 IN CNAME @
一堆 A 记录:
@ 3600 IN A 123.123.123.123
a 3600 IN A 123.123.123.123
b 3600 IN A 123.123.123.123
c 3600 IN A 123.123.123.123
答案1
更好什么?
从性能角度来看,使用这些记录会稍微好一些(我所说的“稍微”是指“技术上,但不明显”)A
,因为您的 DNS 响应不需要包含额外的数据。
如果CNAME
指向您的服务器不具有权威性的另一个域,则可能会产生更大的影响,因为解析器需要发出更多请求才能获得结果......但在您提供的示例中,性能影响完全可以忽略不计。
从可管理性角度来看,这CNAME
可能更容易,因为您只需进行一次更改而不是多次更改即可解决系统的 IP 更改。
如果部署像您提供的示例一样简单,那么无论哪种方式都无所谓。
答案2
拥有较少的 A 记录和数十个 CNAME 记录是否更好,还是反之亦然?
不。说得更直白些,真的没有太多理由偏爱其中一个,只要您不在整个过程中将 CNAME 指向 CNAME。
选择 CNAME 的主要优点在于您不必为每个子域添加 MX 记录或其他临时记录。主要缺点在于,如果不转换回 A 记录,您就无法更改这些记录。
答案3
回复:CNAME
vs A
- 根据其他答案,这对性能来说确实不重要。
但是,如果您确实使用了CNAME
,请不要将其作为指向的指针@
,而是将其作为指向区域中其他子域的指针。
原因是@
还包含其他记录,例如您的SOA
、、记录等NS
。MX
如果您CNAME
指向@
,那么所有其他记录也将(错误地)开始存在于您的别名子域中。
顺便说一句,如果您的 Web 主机变为多宿主(即它有多个A
记录,甚至一个A
和AAAA
),那么CNAME
到真实主机的记录只需维护一条。如果您使用了A
记录,则需要为每个子域重复复制列表。