我一直在尝试寻找一种更为优雅的解决方案,以便为我的网络服务器和在其上托管的少数网站提供更好的 DNS 更新。
例如,您在 VPS 提供商处拥有一个域名为 的网络服务器apache1.vpshost.com
。如果我想将拥有域名的网站www.example.com
托管在该网络服务器上,我只需在其中添加一条 CNAME 记录,内容www.example.com
为apache1.vpshost.com
。这样做的好处是,如果网络服务器的 IP 地址发生变化,您只需在一个地方更新,托管在那里的所有网站都将正常。
越来越多的人开始放弃www.
来自网址的域名,但我知道的唯一方法是将根 A 记录设置为与相同的 IP 地址,因为apache1.vpshost.com
您无法将根 DNS 设为 CNAME。我认为这样做的主要缺点是,如果 Web 服务器的 IP 地址发生变化,那么您就不得不更新所有托管网址上的所有 DNS 设置。
我尝试过多次用谷歌搜索这个问题,但如果有更好的解决方案,我就会迷失方向,因为我的搜索词非常常见。
答案1
目前还没有针对“CNAME at apex”用例的好的解决方案。如果网络浏览器确实支持 DNS 记录,这不会是一个问题,SRV
但它们从未支持,也永远不会支持
各种 DNS 提供商提供各种临时解决方案,有时称为ANAME
或APEXCNAME
或ALIAS
或其他。重点是这里没有标准。它会以某种方式出现在他们的 UI/API 上,不能按原样复制到另一个提供商(如果您更改),当然它根本不会出现在 DNS 解析方面,因为它们会以某种方式(在请求到来时动态地,或通过一些预先填充的缓存)根据配置为顶点生成A
和回复。AAAA
从技术上讲,它确实涉及到基本上有一个权威的名称服务器,也有点递归,因为在某些时候它确实需要将您在“假”中使用的名称解析CNAME
为某个 IP 地址。
这就是为什么未来的 DNS 记录SVCB
或HTTPS
将最终解决这个问题。它们尚未完全标准化,因为 IETF RFC 仍在编写中,但它们已经存在于 DNS 中,具有分配的资源记录类型,并且各种公司(Apple、Google、CloudFlare 等等)已经在使用它们。
无论如何,我建议只在这个未来万无一失的标准解决方案上投入时间(因此找到支持它们的 DNS 提供商,并观察浏览器将如何/何时使用它们,他们“都”说他们会这样做),而不是花时间在当前的临时解决方案上,因为它们是劣质的、不是标准的,并且注定会在上述新 DNS 记录的出现中消失。