我www.mydomain.com
指出了一个 Azure 网站。
www.mydomain.com --- CNAME --- mydomain.azurewebsites.net
当我访问时www.mydomain.com
,一切正常。这很好。
问题是,mydomain.com
不起作用。Azure 只允许 www 子域。
在某些名称服务器中,我使用 FWD 记录将根转发到 www,这很好用。我当前的名称服务器 (zoneedit.com) 没有此 FWD 记录。
是否有我们可以用来将根域转发到 www 子域的 DNS 记录?
不幸的是,这是 DNS 协议的一个众所周知的缺点。DNS 标准中没有定义允许您为域的顶点命名的记录类型。许多人认为
CNAME
可以使用记录来完成此任务,但有技术原因无法做到这一点。许多 DNS 提供商实施自定义(阅读:假)DNS 记录类型来尝试解决这个缺点。在幕后,这些虚假记录使用合成
A
记录和网络服务器重定向的组合在该公司的软件中实施自定义行为,以实现您想要的目标。FWD
就是其中之一,就像WebForward
迈克尔在评论中指导你的那样。总结:简而言之,你无法拥有你想要的记录,而你的 DNS 主机正在以正确的方式做事。
说明:在区域顶点(区域前面的空名称)有一个 CNAME(别名记录/转发记录)违反了 DNS 标准。
原因是 CNAME 记录的名称部分不能与除 DNSSec 记录之外的任何记录发生冲突。在典型的区域中,区域顶点的 CNAME 记录至少会与 SOA 和 NS 记录(可能还有其他几个)发生冲突。虽然一些 DNS 服务器会允许这样做,但这是一件坏事,并且可能导致难以诊断故障(更不用说如果您将区域托管移动到符合标准的 DNS 服务器,例如任何基于 BIND 的服务器,这将不起作用) .
要么在区域顶点有 A 记录(它们可以是一个简单的 Web 服务器,只向 www 抛出 HTTP 302)。如果您可以获得 Azure 服务器实例的静态 IP 编号,请在您的区域的顶点为每个实例放置一条 A 记录,并创建一个名为“www”的 CNAME 记录,该记录指向该顶点记录。
举个例子 :
一些协议具有用于查找服务的 DNS 记录类型的标准,而不是 A 记录。带有相关 MX 记录的 SMTP 就是一个很好的例子。HTTP 没有定义的 DNS 记录类型。很可能您之前的 DNS/注册商提供了 HTTP 重定向或反向代理服务。
为了实现您的目标,您需要设置一个网络服务器(虚拟主机)来执行从一个主机名到另一个主机名的 HTTP 301 或 302 重定向、设置反向 HTTP 代理、设置独立虚拟主机或使用虚拟主机别名,以便同一个网络服务器实例将响应两个 A 名称。
如果您想要特定于 Azure 的答案,您需要创建另一个指向 awverify.mydomain.azurewebsites.net 的 CNAME 记录,如下所示