Я пытаюсь сделать что-то, что кажется очень простым (и очевидным), но это не работает, поэтому, возможно, я неправильно реализую идею, и поэтому мне нужна ваша помощь.
У меня есть веб-сервер с IIS7 (если он работает только в IIS7.5, он у меня также есть) с веб-сайтом, настроенным на порт 80, а также с сертификатом SSL, настроенным на порт 443.
На этом веб-сайте у меня есть две папки приложений, каждая из которых запускает приложение .NET. Что-то вроде дерева ниже:
- ServerName -- Sites --- MyAppsWebSite ---- ApplicationFolder1 ---- ApplicationFolder2
Я организую сервер таким образом, чтобы у меня не было приложений, работающих в корне на веб-сайте, чтобы избежать путаницы и совместного использования конфигурации из-за наследования конфигураций.
Что мне нужно сделать, так это сопоставить один поддомен с каждым приложением этого веб-сайта. Что-то вроде этого:
app1.myDomain.com -> ApplicationFolder1 app2.myDomain.com -> ApplicationFolder2
Однако, насколько мне известно, я могу сопоставить поддомен только с конкретным веб-сайтом (используя имена хостов), а не с приложением, поэтому я не могу заставить его работать.
Одна из возможностей - создать один веб-сайт для каждого приложения, но тогда я не смогу использовать сертификат SSL, поскольку у нас не может быть двух веб-сайтов, использующих один и тот же порт (80/443).
Есть ли способ сделать это в IIS, или я что-то упускаю и пытаюсь сделать что-то невозможное?
Спасибо
Вы пытаетесь сделать невозможное!
На самом деле, это совсем не невозможно, но невозможно с вашим текущим сертификатом. Имейте в виду, что ключевой стороной, которая увидит имена, является клиент. По сути, вы описываете макет, который должны видеть клиенты, и это определит, как вы можете настроить сервер. Вы не можете попросить сервер «просто рассматривать этот каталог как веб-сайт», потому что это и есть веб-сайт - это пространство имен, соответствующее иерархической группе каталогов, и вы описали свое как сайт / каталог; site / site не работает с точки зрения URL.
Так да! Вам нужно будет создать фактические объекты веб-сайта для этих имен хостов, возможно, используя поддержку заголовка Host, и напрямую направить их в каталоги приложений. Это будет работать только с HTTP, но с SSL сложнее.
Это означает, что если у вас только один IP-адрес, вам понадобится сертификат с поддержкой SAN (альтернативное имя субъекта) и запись для каждого имени, на которое будет отвечать сервер, или сертификат с подстановочными знаками.
С их помощью вы можете напрямую отредактировать конфигурацию, чтобы добавить привязки заголовка хоста SSL - я не думаю, что графический интерфейс позволяет вам (может быть, здесь ошибаюсь).
Вы также можете реализовать какую-либо форму прокси приложения (ARR; ISA; TMG; UAG; Squid; Apache и т. Д.) Для преобразования запросов для https://app1.yourdomain.com к http://yourserver.yourdomain.com/app1 , но требования к сертификату для этого прокси будут такими же.