Настройка обратного прокси-сервера

Обратный прокси-сервер может использоваться для распределения внешних запросов для балансировки нагрузки на разные сервера/экземпляры АвтоГРАФ.WEB или для обеспечения одновременного функционирования нескольких сайтов, в том числе АвтоГРАФ.WEB на одном сервере. В последнем случае случае необходимо оставить сервис АвтоГРАФ.WEB по адресу localhost:5000 и опубликовать его на IIS, задав нужное имя узла (host header).
Внешний запрос, содержащий уникальное имя узла, будет перенаправлен к физическому сайту, привязанному к этому имени в IIS.
Далее в качестве примера используется имя узла bda11.tk-chel.ru. Для функционирования обратного прокси-сервер необходимо в IIS добавить и настроить два модуля: URL Rewrite и Application Request Routing (ARR).


Создайте в IIS сайт. Обязательно укажите имя узла (host name).

proxy1.jpgРис. 1: Создание сайта в IIS

  • Перейдите на страницу модулей URL Rewrite Application Request Routing (ARR) и выполните установку.
  • Или в Диспетчере служб IIS нажмите «Получить новые компоненты веб-платформы» и выполните установку расширений при помощи Установщика веб-платформы (Web Platform Installer).

proxy2.jpgРис. 2: Установка Web Platform Installer

  • Для этого установите Web Platform Installer, далее в Диспетчере служб IIS для настраиваемого сайта выберите «Установка приложения из галереи».

proxy3.jpgРис. 3: Установка расширений из галереи

  • После загрузки Установщика выберите вкладку «Продукты» и найдите нужные расширения — Модуль переопределения URL-адресов 2.0 (URL Rewrite) и Маршрутизация запросов приложений (Application Request Routing). Вы можете воспользоваться функцией поиска.

proxy4.jpgРис. 4: Выбор продуктов для установки

  • Нажмите кнопку «Добавить» в строке с нужными модулями, далее нажмите «Установить» для выполнения установки выбранных расширений.

proxy5.jpgРис. 5: Установка расширений

  • Перейдите в Диспетчере служб IIS.
  • Включите модуль Маршрутизация запросов приложений. Если модуль не появился в списке расширений IIS, выполните перезапуск Диспетчера служб IIS.

proxy6.jpgРис. 6: Запуск Маршрутизации запросов приложений

В каталоге ..\inetpub\wwwroot\ перейдите в папку сайта (название папки соответствует имени узла — в рассматриваемом примере bda11.tk-chel.ru).
Создайте в этой папке файл web.config со следующим содержанием:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <outboundRules>
        <preConditions>
          <preCondition name="ResponseIsHtml1">
            <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
          </preCondition>
        </preConditions>
      </outboundRules>
      <rules>
        <rule name="ReverseProxyInboundRule1" stopProcessing="true">
          <match url="(.*)" />
          <action type="Rewrite" url="http://localhost:5000/{R:1}" />
          <serverVariables>
          </serverVariables>
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Внимание

В каталоге …\inetpub\wwwroot\<название узла> не должно быть никаких других файлов и папок, кроме web.config.

После этого все запросы к сайту (например, http://bda11.tk-chel.ru) будут пробрасываться на локальный сервис http://localhost:5000 .
Также следует исправить имя сайта в файле appsettings.user.json в секции web (ключ site-url ) на вашем сайте ( http://bda11.tk-chel.ru ). В случае необходимости хостинга множества сайтов с помощью обратного прокси можно организовать любую схему, где запросы приходят на один внешний IP адрес IIS, а далее согласно имени узла распределяются по сайтам и перенаправляются на соответствующие внутренние серверы.


  • Последнее изменение: 08.08.2022 06:47