Переадресация корневого домена на поддомен 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?

5 ответов

Решение

К сожалению, это общеизвестный недостаток протокола DNS. В стандартах DNS не определен тип записи, который позволил бы вам использовать псевдоним вершины домена. Многие люди предполагают, что CNAME записи могут быть использованы для этого, но есть технические причины, по которым они не могут.

Многие провайдеры DNS реализуют пользовательские (читай: фальшивые) типы записей DNS, чтобы попытаться устранить этот недостаток. За кулисами эти фальшивые записи реализуют пользовательское поведение в программном обеспечении этой компании с использованием комбинации синтезированных A записи и перенаправление веб-сервера для достижения желаемой цели. FWD является одним из них, так же, как WebForward что Майкл направил вас в комментариях.

Резюме: Короче говоря, у вас не может быть нужной вам записи, и ваш DNS-хост делает все правильно.

Объяснение: Стандарты DNS являются нарушением наличия CNAME (запись псевдонима / запись пересылки) в вершине зоны (пустое имя в начале зоны).

Причиной этого является то, что запись 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, настроить независимые виртуальные хосты или использовать псевдонимы виртуальных хостов, чтобы один и тот же экземпляр веб-сервера будет отвечать обоим именам.

Если вы хотите получить ответ, относящийся только к Azure, вам нужно создать еще одну запись CNAME, указывающую на awverify.mydomain.azurewebsites.net, например:

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

В зависимости от вашего DNS-провайдера есть возможность выполнить выравнивание CNAME (https://developers.cloudflare.com/dns/cname- Flattening / ) .

Однако обратите внимание, что эта функция доступна (пока) не у всех провайдеров DNS.

Другие вопросы по тегам