2014-10-21 8 views
0

Я хочу создать веб-приложение, предоставляющее пользователям собственный экземпляр приложения, расположенного в домене подкаталога. Например, если бы это была платформа для блогов, они получили бы «yourblog.blogwebapp.com». Должен ли я создать новый сайт на Azure для каждого сайта поддомена или должен быть создан в разделе виртуального приложения существующего веб-сайта? Если я поеду на новый маршрут веб-сайта, мне нужно как-то убедиться, что их домен «yourblog.blogwebapp.com», и я не уверен, что это возможно. Кроме того, я не уверен, что вы можете программно добавлять виртуальные приложения «на лету», и если вы можете сделать это, не запустив все веб-сайт.Как сделать создание веб-приложений подкаталога в Azure

Я думаю, если кто-то может указать мне в правильном направлении через MSDN или сообщение в блоге, это было бы здорово.

+0

У меня нет ресурса, но я скажу, что это возможно, используя только переписывание URL; вам нужно будет размещаться на выделенном IP-адресе. В настоящее время я использую эту же методику на сайте, чтобы пользователи могли иметь username.example.com (который просто переписывает example.com/site/?u=username). Переписывание URL-адресов определенно то, что вам нужно здесь, однако, чтобы избежать необходимости связываться с настройками сервера и создавать поддомены «на лету». – trnelson

+0

Что делать, если некоторое время по дороге они хотят использовать свой собственный домен вместо user.example.com и SSL? Я предполагаю, что он должен будет запускаться на своем собственном веб-сайте Azure, правильно? – Stephen

+0

Возможно использование настраиваемого домена. Мне придется выкопать какой-то старый код, но я определенно это сделал. Не совсем уверен в SSL, хотя. – trnelson

ответ

0

В нашем обсуждении в комментариях используется правило перезаписи URL, которое я использовал в прошлом, чтобы пользователи могли использовать пользовательские домены. Вам нужно будет проверить, можно ли это использовать с сертификатами SSL (я думаю, это может быть сложно, поскольку, по крайней мере, вам нужно будет установить SSL-сертификаты для этих доменов).

Ключом с таким подходом является то, что вам нужно иметь что-то в вашем хранилище данных, которое знает, что имя домена связано с пользователем. Итак, при окончательном переадресации на Page.aspx?d={R:1} вы можете найти требуемый домен и затем перенаправить на страницу определенного пользователя. Например, если вы переписываете Page.aspx?d=www.example.com, то, предположительно, где-то в вашем хранилище данных пользователь «зарегистрировал» это доменное имя в своей учетной записи и проверил его, возможно, посредством проверки по электронной почте, а затем вы можете по праву загрузить свой контент.

Регулярное выражение, которое у меня было в моем коде, не было точным (и в настоящее время я не использую эту функцию на своем сайте), поэтому я не представил его ниже, но его нужно установить достаточно просто. У вас есть может do имеет правило, которое определяет ваше основное доменное имя и ничего не делает и прекращает обработку, после чего у вас есть другое правило для обнаружения всех других доменных имен, для которых вы можете переписать. Надеюсь, это имеет смысл. Если нет, сообщите мне, и я могу уточнить.

<rewrite> 
    <rule name="UserDomain" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
      <add input="{HTTP_HOST}" pattern="*** regex to detect domain names ***" /> 
     </conditions> 
     <action type="Rewrite" url="/Page.aspx?d={R:1}" /> 
    </rule> 
</rewrite> 

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

  • Нет связанных вопросов^_^