Коллеги, всем доброго времени суток!
Решил написать данную статью, так как столкнулся с необходимостью развернуть 1С:Элемент на сервере, где уже стоит 1С:Предприятие и все публикации реализованы через IIS.
Соответственно, была задача развернуть обратный прокси сервер через IIS, не используя другие решения.
В документации 1С:Элемента есть пример работы с nginx, однако, по мне странно, что не написали инструкцию для IIS, давайте это исправим!)
Итак, первое что вам необходимо понимать - 1С:Элемент, это не стандартная публикация, как в 1С:Предприятие, мы не можем ей управлять (за исключением пути).
Все остальное от нас скрыто и работает "под капотом".
И самое главное, тут необходимо понимать, что все пути в дальнейшем строит сам 1С:Элемент.
Давайте представим, что у нас есть приложение на 1С:Элементе, у нас есть купленный домен - допустим, test.ru.
Нам необходимо, чтобы наши пользователи открывали test.ru и открывалось наше приложение на 1С:Элемент.
Для начала что нам необходимо:
Кроме самого IIS необходимо установить следующие компоненты:
URL Rewrite - данный компонент необходим для того, чтобы мы могли настраивать маршрутизацию внутри IIS (какая ссылка, на что будет вести).
Установка простая - скачиваем дистрибутив. распаковываем, запускаем установщик и перезапускаем IIS.
После перезапуска у вас должен появится новый компонент, "Переопределение URL-адресов".

Он будет доступен, если вы раскроете в ветке сервер IIS --> Сайт --> Откройте конкретный сайт

Далее нам необходимо установить Applicatoin Request Routing
Полностью аналогично, скачиваем дистрибутив, открываем, устанавливаем, перезапускаем IIS.
Итак, подготовительные работы завершены, давайте приступим к настройке.
- Необходимо создать сайт в IIS.
Для этого нажмите в дереве объектов на объект "Сайты" правой кнопкой мыши --> "Добавить Сайт".

- Заполняем данные.
Имя сайта - произвольное имя, для того, чтобы вы могли понимать что за сайт.
Пул приложений - оставляем стандартный.
Физический путь - выбираем, где будет храниться каталог с настройками (рекомендую стандартный путь C:\inetpub\wwwroot).
Привязка - это самое интересное. Чуть ниже мы с вами привяжем DNS запись вашего домена к IIS, однако, чтобы сам IIS понимал, что именно с этого домена необходимо работать с этим сайтом внутри IIS существуют связки.
Укажите в имени узла ваш домен без http или https.
Допустим - test.ru - Выпуск SSL сертификатов - данный пункт необходим, чтобы у нас с вами работал протокол https.
И как не странно, это один из лёгких пунктов. Скачиваем win-acme, открываем от имени администратора и вводим команду N.
Он сам автоматически увидит сайты в IIS и их привязки, если у вас несколько сайтов, он вам предложит выпустить сертификаты для всех или конкретного сайта.
Выпустите сертификат, он автоматически привяжет его к IIS.
Более подробная инструкция на сайте. - Привязываем DNS запись домена к вашему IIS серверу.
Для этого вам необходимо зайти в хостинг вашего домена, у меня это jino.
Вам необходимо зайти в настройки DNS записи и создать DNS запись с типом A

- Включаем proxy в IIS.
Для этого у вас должен быть установлен компонент Applicatoin Request Routing
Настройки должны быть полностью идентичны:

- Настраиваем серверные переменные переопределения URL адресов.
Вот казалось бы и всё, однако, как я выше писал, браузер обращается по адресу test.ru, далее 1С Элемент ловит этот запрос и формирует множество ссылок, на sys (авторизация, компоненты и т.д.).
И важно понимать, что все ссылки формирует 1С:Элемент самостоятельно и это написано в документации.
Поэтому, нам необходимо передавать в заголовках хост и порт 1С:Элементу, чтобы он восстанавливал url корректно.
То есть если мы сейчас передадим запрос на сервер 1С:Элемента, на путь приложения, то по итогу получим бесконечную загрузку страницы, так как Элемент вернёт служебные пути с localhost.
Чтобы этого не произошло, нам нужно с вами зайти и указать хост и порт.
Необходимо в дереве IIS открыть Сайты --> Ваш сайт --> Переопределение URL-адресов.
Теперь справа в панели необходимо нажать "Посмотреть серверные переменные"
Нам необходимо добавить следующие переменные:
Это необходимо для того, чтобы 1С Элемент корректно восстанавливал пути (описано в документации тут).

- Создаём правило.
Для этого зайдите снова в Переопределение URL-адресов, нажмите кнопку в правой панели "Добавить правило".
Нам с вами необходимо пустое правило входящего трафика:

- Создание правила для перенаправление на приложение.
Шаблон (.*)
Серверные переменные - должны быть установлены, как на скриншоте.
Действие - переопределение. URL - адрес вашего приложения + {R:0}
Обязательно должны стоять галочки "Добавить строку запроса", "Остановить обработку последующих правил".

- Правило для sys
Для путей содержащих sys необходимо почти аналогичное правило, но с немного с другими значениями серверных переменных.
Создаём новое пустое правило, вот его настройки.
Шаблон - ^sys/(.*)$
URL переопределения - теперь localhost:9090(это стандартный порт 1С:Элемента)/application/Название вашего приложения/sys/{R:1}
И тут обязательно необходимо отключить галочку "Остановить обработку последующих правил".

- Сохраняем все правила, перезапускаем IIS и проверяем.
По ссылке test.ru - должно открыться ваше приложение!)
Вступайте в нашу телеграмм-группу Инфостарт
