我已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 记录?
答案1
不幸的是,这是 DNS 协议的一个众所周知的缺点。DNS 标准中没有定义允许您为域名的顶点设置别名的记录类型。许多人认为CNAME
可以使用记录来实现这一点,但由于技术原因,他们无法。
许多 DNS 提供商实施自定义(即:虚假)DNS 记录类型,以尝试解决这一缺陷。在幕后,这些虚假记录会结合使用合成A
记录和 Web 服务器重定向,在该公司的软件中实施自定义行为,以实现您的预期目标。FWD
就是其中之一,就像WebForward
Michael 在评论中向您指出的那样。
答案2
摘要:简而言之,您无法获得想要的记录,并且您的 DNS 主机正在以正确的方式执行操作。
解释:在区域顶点(区域前面的空名称)拥有 CNAME(别名记录/转发记录)违反了 DNS 标准。
原因是 CNAME 记录的名称部分不能与除 DNSSec 记录之外的任何记录冲突。在典型的区域中,区域顶点的 CNAME 记录至少会与 SOA 和 NS 记录(以及可能还有其他几个记录)发生冲突。虽然某些 DNS 服务器允许这种情况,但这是一件坏事,并且可能导致难以诊断的故障(更不用说如果您将区域的托管移动到符合标准的 DNS 服务器(例如基于 BIND 的任何服务器)将无法正常工作)。
在区域顶点处有 A 记录(它们可以是一个简单的 Web 服务器,只向 www 发出 HTTP 302)。如果您可以为 Azure 服务器实例获取静态 IP 号码,请在区域顶点处为每个实例放置一条 A 记录,并创建一条指向顶点记录的名为“www”的单个 CNAME 记录。
举个例子 :
$ORIGIN example.com。 @ 在 SOA ns1.example.com 中。 [电子邮件保护]。 ( 101; 172800; 900; 1209600; 3600; ) @ IN NS ns1.example.com。 @IN NS ns2.example.com。 @ 在 123.234.1.123 @ 在 123.234.1.124 @ 在 123.234.1.125 ns1 在 123.234.1.126 ns2 在 123.234.1.127 www IN CNAME example.com。
答案3
某些协议对用于查找服务的 DNS 记录类型(除 A 记录外)有标准。SMTP 及其关联的 MX 记录就是一个很好的例子。HTTP 没有定义的 DNS 记录类型。您之前的 DNS/注册商提供商可能提供 HTTP 重定向或反向代理服务。
为了实现您的目标,您需要设置一个 Web 服务器(虚拟主机)来执行从一个主机名到另一个主机名的 HTTP 301 或 302 重定向,设置反向 HTTP 代理,设置独立的虚拟主机,或者使用虚拟主机别名,这样同一个 Web 服务器实例将响应两个 A 名称。
答案4
根据您的 DNS 提供商,有一个选项可以执行 CNAME 扁平化(https://developers.cloudflare.com/dns/cname-flattening/)
但请注意,此功能尚未在所有 DNS 提供商中提供。