Как мне настроить IIS 7.0 ARR и URL Rewrite для обратного прокси на основе хоста.
Например:
http://website1.mydomain.com gets routed internally to internalserver\website1
http://website2.mydomain.com gets routed internally to internalserver2\website2
http://website3.mydomain.com gets routed internally to internalserver2 (default website)
К вашему сведению - общедоступный DNS-сайт website1.mydomain.com и остальные фактически указывают на общедоступный IP-адрес mydomain.com.
Обратите внимание, что это не один и тот же сервер. ВНУТРИ брандмауэра есть несколько веб-серверов и один простой веб-сервер по умолчанию, чьи порты 80 и 443 доступны извне. У меня один IP-адрес и одно доменное имя. Таким образом, поскольку у меня есть несколько веб-серверов внутри моего брандмауэра, мне нужно маршрутизировать поддомены имени хоста на разные веб-серверы внутри.
Любые подробные шаги очень помогут.
Поскольку вы полагаетесь на доменное имя, а не на IP (что в данной ситуации проще), вот самый простой способ сделать это:
убедитесь, что ваш внешний сервер имеет привязки для 3 сайтов на основе заголовка хоста (website1.mydomain.com и т. д.). Вы можете оставить IP-адрес как (Все неназначенные). Вероятно, вы это уже сделали. - По сути, я хочу добавить привязку к первому сайту, который называется «website1.mydomain.com», и к двум другим сайтам аналогичным образом. Вот прохождение по привязкам.
создать 2 веб-фермы в ARR на сервере ARR. Один для internalserver, а другой для internalserver2. Используйте первичные IP-адреса этих серверов. Вы можете настроить 3 разные веб-фермы, если хотите уникальные проверки работоспособности для каждого веб-сайта. Это нормально, что два из них указывают на один и тот же сервер. - Шаги: создайте новую ферму серверов с именем InternalServer и добавьте к ней единственный сервер, который называется «внутренний сервер». Затем создайте еще одну ферму серверов с именем InternalServer2 и добавьте к ней просто «internalserver2».
Пример перезаписи URL:
<rule name="site1" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^website1\.mydomain\.com$" />
</conditions>
<action type="Rewrite" url="http://InternalServer1/{R:0}" />
</rule>
Если вы используете SonicWALL, вы можете сделать это:
Если вы используете другой брандмауэр, посмотрите, сможете ли вы сделать что-то подобное со своим.
Поскольку все это находится на одном сервере, почему бы просто не создать три отдельных веб-сайта с привязкой к указанным поддоменам?