у меня есть www.mydomain.com
указал на веб-сайт Azure.
www.mydomain.com --- CNAME --- mydomain.azurewebsites.net
Когда я приезжаю www.mydomain.com
, все нормально работает. Это хорошо.
Проблема в том, mydomain.com
не работает. В Azure разрешен только субдомен www.
На некоторых серверах имен я использую запись FWD для перенаправления корня на www, и это отлично работает. Мой текущий сервер имен (zoneedit.com) не имеет этой записи FWD.
Есть ли запись DNS, которую мы можем использовать для перенаправления корневого домена на субдомен www?
К сожалению, это известный недостаток протокола DNS. В стандартах DNS не определен тип записи, который позволил бы вам использовать псевдоним вершины домена. Многие считают, что CNAME
записи могут быть использованы для этого, но по техническим причинам они не могут.
Многие поставщики DNS реализуют настраиваемые (читай: поддельные) типы записей DNS, чтобы попытаться устранить этот недостаток. За кулисами эти поддельные записи реализуют нестандартное поведение в программном обеспечении этой компании, используя комбинацию синтезированных A
записи и перенаправление веб-сервера для достижения желаемой цели. FWD
один из них, как и WebForward
на которые Майкл направил вас в комментариях.
Резюме: Короче говоря, у вас не может быть нужной записи, а ваш DNS-хост делает все правильно.
Объяснение: Наличие CNAME (запись псевдонима / прямая запись) на вершине зоны (пустое имя в начале зоны) является нарушением стандартов DNS.
Причина этого в том, что запись CNAME не может иметь конфликт части имени с какой-либо записью, кроме записи DNSSec. В типичной зоне запись CNAME на вершине зоны будет конфликтовать, по крайней мере, с записями SOA и NS (и, вероятно, несколькими другими). Хотя некоторые DNS-серверы допускают это, это плохо и может привести к трудным для диагностики сбоям (не говоря уже о том, что не будет работать, если вы переместите хостинг зоны на DNS-сервер, соответствующий стандартам, например, любой, основанный на BIND) .
Либо иметь записи A на вершине зоны (это может быть простой веб-сервер, который просто передает HTTP 302 на www). Если вы можете получить статические IP-адреса для своих экземпляров сервера Azure, поместите запись A для каждого из них на вершине своей зоны и создайте единственную запись CNAME с именем «www», которая указывает на запись вершины.
Например :
$ORIGIN example.com. @ IN SOA ns1.example.com. admin@example.com. ( 101 ; 172800 ; 900 ; 1209600 ; 3600 ; ) @ IN NS ns1.example.com. @ IN NS ns2.example.com. @ IN A 123.234.1.123 @ IN A 123.234.1.124 @ IN A 123.234.1.125 ns1 IN A 123.234.1.126 ns2 IN A 123.234.1.127 www IN CNAME example.com.
Некоторые протоколы имеют стандарты для типов записей DNS, отличных от записей A, для поиска службы. SMTP с соответствующими записями MX является хорошим примером этого. Для HTTP не существует определенных типов записей DNS. Вероятно, у вашего предыдущего поставщика DNS / регистратора была служба перенаправления HTTP или обратного прокси.
Для достижения вашей цели вам необходимо настроить веб-сервер (виртуальный хост) для перенаправления HTTP 301 или 302 с одного имени хоста на другое, настроить обратный прокси-сервер HTTP, настроить независимые виртуальные хосты или использовать псевдонимы виртуальных хостов, чтобы один и тот же экземпляр веб-сервера ответит на оба имени A.
Если вам нужен ответ, специфичный для Azure, вам необходимо создать еще одну запись CNAME, указывающую на awverify.mydomain.azurewebsites.net, как это
www.mydomain.com --- CNAME --- awverify.mydomain.azurewebsites.net