使用DNSlogging将根域转发到www子域

我有www.mydomain.com指向一个Azure网站。

 www.mydomain.com --- CNAME --- mydomain.azurewebsites.net 

当我访问www.mydomain.com ,一切正常。 这很好。

问题是, mydomain.com不起作用。 Azure只允许www子域名。

在一些域名服务器上,我使用FWDlogging将根目录转发到www,并且工作正常。 我目前的名字服务器(zoneedit.com)没有这个FWDlogging。

有没有一个DNSlogging,我们可以用来转发根域到www子域?

不幸的是,这是DNS协议的一个众所周知的缺点。 在DNS标准中没有定义loggingtypes,这将允许您别名域的顶点。 许多人认为CNAMElogging可以用来实现这一点,但有技术上的原因,他们不能 。

许多DNS提供商实施自定义(读取:假的)DNSloggingtypes来试图解决这个缺点。 在幕后,这些虚假logging使用合成的Alogging和Web服务器redirect的组合来实现该公司软件中的自定义行为,以实现您所期望的目标。 FWD就是其中之一,就像迈克尔在评论中指引你的WebForward一样。

总结:总之,你不能拥有你想要的logging,而你的DNS主机正在做正确的事情。

说明:在区域顶点(区域前面的空名称)有一个CNAME(别名logging/转发logging),这违反了DNS的标准。

这是因为CNAMElogging不能将名称部分与DNSSeclogging以外的任何logging冲突。 在典型的区域中,区域顶点处的CNAMElogging至less与SOA和NSlogging(以及其他几个)相冲突。 虽然一些DNS服务器会允许这样做,但这是一件坏事,并且可能导致难以诊断故障(更不用说,如果将区域的托pipe移动到符合标准的DNS服务器(如任何基于BIND的服务器)将不起作用) 。

要么在区域顶点有一个logging(他们可以是一个简单的Web服务器,只是抛出一个HTTP 302到WWW)。 如果您可以获取Azure服务器实例的静态IP地址,请为您的区域的顶点放置一条Alogging,然后创build一个名为“www”的CNAMElogging,指向顶点logging。

举个例子 :

 

 $ ORIGIN example.com。

 @ IN SOA ns1.example.com。  [email protected]。  (
                                  101;
                                  172800;
                                  900;
                                  1209600;
                                  3600;  )
 @ IN NS ns1.example.com。
 @ IN NS ns2.example.com。
 @ IN 123.234.1.123
 @ IN 123.234.1.124
 @ IN 123.234.1.125
 ns1 IN A 123.234.1.126
 ns2 IN A 123.234.1.127
 www CNAME example.com。

一些协议具有DNSloggingtypes的标准,除了Alogging外,用于查找服务。 SMTP及其关联的MXlogging就是一个很好的例子。 HTTP没有定义的DNSloggingtypes。 您以前的DNS /注册服务商提供商可能有HTTPredirect或反向代理服务。

为了实现您的目标,您需要设置一个web服务器(虚拟主机)来执行从一个主机名到另一个主机名的HTTP 301或302redirect,设置反向HTTP代理,设置独立虚拟主机或使用虚拟主机别名相同的Web服务器实例将响应这两个名称。