Перейти к основному содержимому

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

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


Создание сайта

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

Создание сайта в IIS

Установка Модуля переопределения URL-адресов (URL Rewrite)

  1. Загрузите файлы модулей URL Rewrite и Application Request Routing (ARR) и выполните установку.
    Или в Диспетчере служб IIS нажмите «Получить новые компоненты веб-платформы» и выполните установку расширений при помощи Установщика веб-платформы (Web Platform Installer).
Установка Web Platform Installer
  1. Для этого установите Web Platform Installer, далее в Диспетчере служб IIS для настраиваемого сайта выберите «Установка приложения из галереи».
Установка расширений из галереи
  1. После загрузки Установщика выберите вкладку «Продукты» и найдите нужные расширения: Модуль переопределения URL-адресов 2.0 (URL Rewrite) и Маршрутизация запросов приложений (Application Request Routing). Вы можете воспользоваться функцией поиска.
Выбор продуктов для установки
  1. Нажмите кнопку «Добавить» в строке с нужными модулями, далее нажмите кнопку «Установить» для выполнения установки выбранных расширений.
Установка расширений
  1. Перейдите на начальную страницу Диспетчера служб IIS, выберите в списке расширений IIS модуль Маршрутизация запросов приложений (Application Request Routing Cache) и нажмите «Открытие функции». Если модуль не появился в списке, то выполните перезапуск Диспетчера служб IIS.
Выбор Маршрутизации запросов приложений
  1. Далее выберите «Server Proxy Settings...».
Переход к настройкам прокси сервера
  1. В настройках прокси сервера установите чек-бокс «Enable proxy» и нажмите «Применить».
Активация прокси
  1. Вернитесь на начальную страницу Диспетчера служб IIS и включите модуль Маршрутизация запросов приложений.
Запуск Маршрутизации запросов приложений

Конфигурация модулей

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