Привязка своего домена к Microsoft Azure (на примере RU-CENTER)

По умолчанию для создаваемых сервисов, сайтов, хранилищ Microsoft Azure предлагает свои собственные имена и внутренний DNS, который резолвит имена второго уровня в пределах cloudapp.net, azurewebsites.net, blob.core.windows.net и т.п. Но вопрос собственного доменного имени возникает практически для любого серьезного облачного приложения или сервиса. Помимо вопроса престижа, иногда есть еще чисто технические причины, например, обход проблемы c кросс доменными скриптами.

Свой домен (Custom Domain Name) к сервисам Microsoft Azure можно привязать следующими способами:

  • с помощью CNAME записи вашего домена;
  • с помощью A записи.


В случае с CNAME вы застрахованы от проблем, связанных с изменением VIP (Public Virtual IP Address), который закреплен за сервисом, развернутым в Microsoft Azure, тк. мэппинг происходит на уровне алиасов: yourservice.cloudapp.net (Microsoft Azure) иhttp://www.mydomain.ru (CNAME — www), а не IP. Но здесь не возможна привязка ккорневому домену, т.е. http://mydomain.com (т.к. обязательно должен быть www или другой алиас).

В случае c A записью возможна привязка к корневому домену, но появляется зависимость от VIP адреса службы, т.к. A запись мэппиться на определенный IP-адрес. А IP-адрес у службы может поменяться, например, при новом деплойменете или перезагрузки ОС. Можно, кстати, применять комбинированный подход, т.е. указывать CNAME и A записи.

Примечание. Еще можно воспользоваться сторонними сервисами, например, DNS Azure, которые делают примерно все то же самое, что будет описано ниже, но автоматически и прозрачно для клиента.

Статья содержит много картинок.

Далее описаны шаги для:

  1. Настройки домена для облачных служб (Cloud Service).
  2. Настройки домена для хранилища и CDN.
  3. Настройки домена для веб-сайтов (We Sites).

Настройка домена для облачных служб (Cloud Service)


Входные данные: доменное имя – natale2008.ru (зарегистрировано через nic.ru), хостинг DNS (у меня там же, nic.ru, поэтому все записи будем в его панели создавать).

1. Создаем приложение в Microsoft Azure: на .Net, PHP или другом поддерживаемом языке. У меня это — habr.cloudapp.net. По умолчанию обращения к приложению (habr.cloudapp.net) будут резолвиться через внутренний DNS Microsoft Azure. 


2. Заходим в панель редактирования DNS, для nic.ru – это Услуги -> Просмотр и изменение данных -> DNS-master. Замечу, что если у них приобретено только само доменное имя, то DNS-master по умолчанию не будет доступен, нужен еще и хостинг DNS. Для хостинга DNS у nic.ru можно приобрести услугу Primary-Standard.

Настройка услуги Primary-Standard: Заказать услугу DNS, Перенаправление, Мобилайзер Primary-Standard



Редактирование DNS: Услуги DNS-master



Добавляем новую запись с типом CNAME: 

  • Alias – www.natale2008.ru.
  • Canonical name — habr.cloudapp.net.



Нажимаем сохранить, а потом еще раз “с сохранением” (это означает завершение работы DNS мастера и сохранение всех изменений, иначе ничего не сохранится).

3. Ждем пока изменения вступят в силу. 

4. Проверяем, выполнив навигацию на www.natale2008.ru (c www).


5. Аналогично можно создать A запись для VIP службы, тогда сможем заходить по natale2008.ru (без www). VIP можно получить из панели Microsoft Azure.


Настройка домена для хранилища и CDN

Процедура привязки домена (второго уровня) к хранилищу чуть длиннее, т.к. требуется предварительная валидация sub-домена. Входные данные: хранилище Microsoft Azure — habr, подомен — storage.natale2008.ru.

1. Заходим на старый портал Microsoft AzureHosted Services, Storage Accounts & CDN –Storage Accounts, выбираем хранилище и нажимаем Add domain.

2. В поле Custom Domain Name вбиваем storage.natale2008.ru.


3. Получаем ключ для верификации и копируем его.


4. В DNS Master вносим соответствующие записи:

  • Alias — 546a4b57-6082-40d8-b73c-afcfb3779367.storage.natale2008.ru.
  • Canonical name — verify.azure.com.



5. Ждем обновления (можно проверять через network-tools.com).

6. Заходим на старый портал Microsoft Azure: Hosted Services, Storage Accounts & CDN –> Storage Accounts, выбираем хранилище и нажимаем Validate Domain. Получаем сообщение об успешной валидации (статус в колонке Status с Pending изменится на Allowed).

7. В DNS Master вносим еще одну CNAME запись:

  • Alias — storage.natale2008.ru.
  • Canonical name – habr.blob.core.windows.net. (Custom Domain Name для BLOB хранилища)




8. Выполняем проверку – storage.natale2008.ru/test/habralogo.jpg. Должна открыться страница с логотипом Хабра.

9. Для CDN настройка домена происходит аналогично настройке для хранилища.

Примечание
.Так же иногда еще возникают вопросы про работу SSL в связке с Custom Domain Name. Для Cloud Services это поддерживается, для хранилища – пока, к сожалению, нет (хотя SSL без Custom Domain Name для хранилища работает).

Настройка домена для веб-сайтов (We Sites)


На данный момент для привязки домена возможна только для Reserved режима, для Shared-режима такой возможности в течение Microsoft Azure Preview пока нет.

1. Первое, что необходимо сделать — это переключиться в Reserved режим. Эта настройка находится в Web Sites ваш сайт Scale.

Не забудьте поставить галочку и сохранить внесенные изменения.

2. Далее настроить CNAME, указанным выше (Настройка домена для облачных служб (Cloud Service)). Если www не занят, то привязываем www.

3. Настроить созданный CNAME на портале Microsoft Azure. Эта настройка находится в Web Sites ваш сайт Configure.

Примерно так все и настраивается.

Автор статьи: Наталья Ефимцева.