2012-01-31 6 views
0

У меня есть приложение .NET MVC 3, SQL Server, работающее на Azure. Он имеет 2 экземпляра веб-роли и один экземпляр рабочей роли.Пользовательское сопоставление доменов в Azure

В настоящее время мы разрешаем клиентам вставлять iFrame (я знаю, его не идеальный, но голый со мной) на свой сайт, который показывает наш контент.

Для получения этого контента у нас есть открытая страница, которая принимает уникальный идентификатор компаний. Например, StackOverflow будет использовать «http://myapplication.com/stack-overflow». Это вернет html-страницу, специфичную для компании.

Нам нравится идея сопоставления записи CName на стороне клиента непосредственно с их контентом в нашем приложении. Из того, что я понимаю, нам нужно принять, в случае StackOverflow, «stack-overflow.myapplication.com» найти выписку в подкаталоге и вернуть содержимое на странице «http://myapplication.com/stack-overflow».

Может ли кто-нибудь пролить свет на то, как это делается на Azure?

Любая помощь будет много ученика.

С уважением, Брайан

ответ

2

Было бы то же самое для Azure и для любых IIS развернутых приложений. Вам просто нужно сопоставить все пользовательские поддомены как CNAME с доменом cloudapp.net. Не изменяйте ничего в своих определениях и/или конфигурационных файлах службы. И жгутов приложения, имеют простую логику, которая будет проверять наличие:

Request.Headers["host"] 

Этот заголовок будет иметь полное имя хоста (т.е. stack-overflow.myapplication.com). Теперь вы можете проанализировать URL-адрес, извлечь субдомен и сопоставить его с соответствующим ресурсом.

Другим подходом было бы использовать модуль перезаписи URL для IIS и построить что-то похожее на то, что I did with Apache Web Server and mod_rewrite (я думаю, именно то, что вам нужно). Я не уверен, что вы можете использовать мои правила перезаписи Apache 1: 1 для модуля перезаписи IIS, но это будет хорошей отправной точкой. Обратите внимание, что теперь (так как Azure SDK 1.3) модуль URL Rewrite включен по умолчанию в Azure full IIS).

+0

Спасибо Антон - это именно то, что я ищу. Быстрый вопрос. Как вы, вероятно, знаете, имена хостов в Azure находятся в форме «name.cloudapp.net». У нас есть наш сайт на сайте «www.domain.com», и наше приложение находится на «app.domain.com» (который затем указывает на экземпляр Azure - «name.cloudapp.net»). Будет ли этот подход по-прежнему работать для суб-субдоменов? –

+0

Хм, никогда не пробовал с суб-субдоменами, но пока вы CNAME-суб-поддомену yourapp.cloudapp.net, это будет ОК – astaykov

+0

Отличный материал, это для вашей помощи! –

Смежные вопросы