Назад | Перейти на главную страницу

Перенаправить корневой домен на субдомен www с помощью записей DNS

у меня есть 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