Назад | Перейти на главную страницу

Обратный прокси-сервер IIS 7 на основе хоста доменного имени?

Как мне настроить 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».

  • на последнем шаге мастера при создании сайта, когда он спрашивает, хотите ли вы, чтобы ARR создал для вас правило, ответьте «да» только в первый раз. Обратите внимание на правило, которое он создает, чтобы вы могли извлечь из него урок. Затем удалите его. Вы хотите управлять своими собственными правилами. - Я объясню правила на следующем шаге.
  • затем следует установить 3 правила перезаписи URL-адресов на глобальном уровне (узел сервера IIS, а не узел веб-сайта). URL =. *, Используйте условие с {HTTP_HOST} для вашего доменного имени, и действие должно быть направлено на соответствующую веб-ферму. - Вот введение в перезапись URL. Выполните эти шаги и введите правило, подобное приведенному ниже:

Пример перезаписи 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, вы можете сделать это:

  1. Создайте сеть> адресный объект типа FQDN в глобальной сети.
  2. Добавьте Сеть> Политика NAT, чтобы преобразовать этот объект адреса во внутренний веб-сервер.
  3. Добавьте правило в разделе «Брандмауэр»> «Правила доступа», чтобы разрешить HTTP-трафик на каждый сервер.

Если вы используете другой брандмауэр, посмотрите, сможете ли вы сделать что-то подобное со своим.

Поскольку все это находится на одном сервере, почему бы просто не создать три отдельных веб-сайта с привязкой к указанным поддоменам?