所以,让我们说我们已经为@build立了一个Alogging和一个AAAAlogging,而对于www,我们已经build立了一个指向@的CNAME。
当一个新的访问者访问example.com,并且networking服务器发送一个301永久redirect到www.example.com时,即使它已经知道@的位置 , 是否仍然需要在CNAME之后进行额外的DNS查询?
如果是这样,为什么许多公司使用CNAME方法超过一个额外的A和AAAA 的www ?
最后我想提一下,我已经通过整个互联网search了这个问题的答案。
要回答您最初的问题,当使用CNAME指向区域中的www。@时,首先执行CNAME查找,然后再查找由CNAME指示的Alogging。 如果客户端以前没有访问过这个,通常这个响应将被caching,并且在logging的TTL中对这个Alogging的任何进一步查找都将被caching响应。
许多公司使用CNAMElogging,在其主域的多个子域指向同一个服务器。 如上所述(由mulaz响应),当服务器IP或位置发生变化时,只需要更新一条logging,而不是几百条(可能是这种情况)既节省了时间,又简化了configuration。
如果你有许多子域指向一个服务器,pipe理起来更容易,因为当服务器IP改变时你只需要改变一个Alogging,而CNAMES将全部指向新的IP-不需要分别设置每个别名的IP 。
否则,你可以select使用哪种方法。
在你的情况下,对同一个域的www CNAMEd @,额外的查找是不必要的。 权威服务器,当被问及www时,会发送CNAMElogging和一个CNAME目标的logging(@在你的情况下)。 对于指向同一区域内的另一主机名的任何CNAME也是如此。
只有当CNAME指向另一个域时,额外的查找才是必要的。
CNAME的使用,因为它更容易pipe理 – 地址更改时,只需要更改一个主机名。
恕我直言,从技术上说,将CNAME指向@不是正确的,因为@通常包含其他logging,例如MX。 如果您将CNAME www指向@,则表示Alogging,但所有其他logging也将显示为现有的www。 因此,有人可能会认为他可以发送电子邮件给[email protected]。