По умолчанию для создаваемых сервисов, сайтов, хранилищ Windows Azure предлагает свои собственные имена и внутренний DNS, который резолвит имена второго уровня в пределах cloudapp.net, azurewebsites.net, blob.core.windows.net и т.п. Но вопрос собственного доменного имени возникает практически для любого серьезного облачного приложения или сервиса. Помимо вопроса престижа, иногда есть еще чисто технические причины, например, обход проблемы c кросс доменными скриптами.
Свой домен (Custom Domain Name) к сервисам Windows Azure можно привязать следующими способами:
- с помощью CNAME записи вашего домена;
- с помощью A записи.
В случае с CNAME вы застрахованы от проблем, связанных с изменением VIP (Public Virtual IP Address), который закреплен за сервисом, развернутым в Windows Azure, тк. мэппинг происходит на уровне алиасов: yourservice.cloudapp.net (Windows Azure) и http://www.mydomain.ru
(CNAME — www), а не IP. Но здесь не возможна привязка к корневому домену, т.е. http://mydomain.com
(т.к. обязательно должен быть www или другой алиас).
В случае c A записью возможна привязка к корневому домену, но появляется зависимость от VIP адреса службы, т.к. A запись мэппиться на определенный IP-адрес. А IP-адрес у службы может поменяться, например, при новом деплойменете или перезагрузки ОС. Можно, кстати, применять комбинированный подход, т.е. указывать CNAME и A записи.
Примечание. Еще можно воспользоваться сторонними сервисами, например, DNS Azure, которые делают примерно все то же самое, что будет описано ниже, но автоматически и прозрачно для клиента.
Статья содержит много картинок.
Далее описаны шаги для:
- Настройки домена для облачных служб (Cloud Service).
- Настройки домена для хранилища и CDN.
- Настройки домена для веб-сайтов (We Sites).
Настройка домена для облачных служб (Cloud Service)
Входные данные: доменное имя – natale2008.ru (зарегистрировано через nic.ru),
1. Создаем приложение в Windows Azure: на .Net, PHP или другом поддерживаемом языке. У меня это — habr.cloudapp.net. По умолчанию обращения к приложению (habr.cloudapp.net) будут резолвиться через внутренний DNS Windows Azure.
2. Заходим в панель редактирования DNS, для nic.ru – это Услуги -> Просмотр и изменение данных -> DNS-master. Замечу, что если у них приобретено только само доменное имя, то DNS-master по умолчанию не будет доступен, нужен еще и
Настройка услуги 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 можно получить из панели Windows Azure.
Настройка домена для хранилища и CDN
Процедура привязки домена (второго уровня) к хранилищу чуть длиннее, т.к. требуется предварительная валидация sub-домена. Входные данные: хранилище Windows Azure — habr, подомен — storage.natale2008.ru.
1. Заходим на старый портал Windows Azure: Hosted 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. Заходим на старый портал Windows 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-режима такой возможности в течение Windows Azure Preview пока нет.
1. Первое, что необходимо сделать — это переключиться в Reserved режим. Эта настройка находится в Web Sites -> <ваш сайт> -> Scale.
Не забудьте поставить галочку и сохранить внесенные изменения.
2. Далее настроить CNAME, указанным выше (Настройка домена для облачных служб (Cloud Service)). Если www не занят, то привязываем www.
3. Настроить созданный CNAME на портале Windows Azure. Эта настройка находится в Web Sites -> <ваш сайт> -> Configure.
Примерно так все и настраивается.
Автор: inatale