Нужно ли устанавливать платформу 1С на веб-сервер для публикации информационных баз?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При развертывании веб-доступа к базам данных 1С (через IIS или Apache) у системных администраторов часто возникает вопрос: обязательно ли ставить полную платформу 1С на ту же машину, где запущен веб-сервер, или достаточно скопировать модуль расширения (библиотеку wsisapi.dll или wsap24.dll / wsap24.so), либо указать к ней сетевой путь?

Разберем детально технические требования платформы 1С, выясним зависимости модулей веб-расширения и рассмотрим правильные варианты настройки.

Почему нельзя ограничиться копированием одной DLL

Модули расширения веб-сервера (например, wsisapi.dll для Microsoft IIS или wsap24.dll для Apache в среде Windows, а также wsap24.so в Linux) не являются автономными исполняемыми файлами. Они жестко зависят от базовых библиотек ядра платформы 1С:Предприятие (таких как core83.dll, wstrsrv.dll и ряда других), а также от системных компонентов среды выполнения (библиотек Microsoft Visual C++ Redistributable).

Если скопировать изолированную библиотеку на веб-сервер без системного окружения платформы, веб-сервер не сможет ее инициализировать и вернет системную ошибку загрузки динамической библиотеки (ошибка с кодом 126 / Module not found). Поэтому библиотеки платформы обязательно должны присутствовать в операционной системе веб-сервера.

Минимальный состав установки платформы на веб-сервере

Разберем состав компонентов, которые действительно необходимо установить на хост с веб-сервером. Разворачивать полноценный сервер 1С (службу ragent) и тем более сервер СУБД на веб-сервере не требуется.

Рассмотрим минимальные требования по установке в зависимости от используемой операционной системы:

  1. В операционных системах Windows: при запуске мастера установки платформы 1С:Предприятие достаточно снять все лишние флаги и выбрать только компонент «Модули расширения веб-сервера» (Web server extension modules). В этом случае установщик скопирует только необходимые модули интеграции с IIS/Apache и разделяемые библиотеки ядра платформы в каталог bin, не создавая системных служб кластера серверов 1С.
  2. В операционных системах Linux (Ubuntu, Debian, CentOS, РЕД ОС и др.): пакет модулей веб-сервисов не может работать автономно. Для корректной установки необходимо развернуть два пакета платформы: 1c-enterprise83-common (общие разделяемые библиотеки) и 1c-enterprise83-ws (модули расширения веб-серверов). Запускать службу сервера 1С srv1cv83 на этой машине не нужно.

Разделение веб-сервера и сервера 1С по разным машинам

Проанализируем топологию распределенной инфраструктуры. Веб-сервер и кластер серверов 1С могут и часто должны располагаться на разных физических или виртуальных машинах (например, веб-сервер выносится в демилитаризованную зону DMZ, а кластер 1С и СУБД находятся во внутреннем защищенном контуре).

В зависимости от типа информационной базы взаимодействие устроено следующим образом:

  1. Клиент-серверный вариант (база на сервере 1С и SQL): веб-сервер выполняет роль шлюза. Модуль расширения 1С принимает входящий HTTP/HTTPS-трафик и транслирует вызовы кластеру серверов 1С по протоколам TCP/IP. Для этого на веб-сервере настраивается файл публикации default.vrd, в котором прописывается сетевой адрес и порт кластера серверов 1С (параметр ib="...").
  2. Файловый вариант информационной базы: при публикации файловой базы вся логика исполняется непосредственно процессом веб-сервера. В этом случае веб-сервер должен иметь локальный или сетевой доступ к каталогу с файлом 1Cv8.1CD на чтение и запись, а пользователю, от имени которого работает веб-сервер, должны быть доступны клиентские лицензии 1С.

Использование сетевых путей (UNC) к модулям платформы

Попытка не устанавливать платформу на веб-сервер, а указать в конфигурации веб-сервера сетевой путь вида \\server1c\1c_bin\wsisapi.dll на практике не рекомендуется по следующим причинам:

  1. Проблемы с правами доступа: системные учетные записи веб-серверов (например, IIS_IUSRS, IUSR или NETWORK SERVICE в Windows) по умолчанию не имеют прав на доступ к удаленным сетевым каталогам сторонних серверов.
  2. Отказоустойчивость: при любых кратковременных сетевых задержках или потере соединения процесс веб-сервера завершится аварийно или заблокирует пул приложений.

Общепринятым и стабильным стандартом является локальная установка компонентов расширения веб-сервера непосредственно на хост веб-сервера.

Контроль разрядности и автоматизация публикации

При настройке веб-сервера обратим внимание на два критически важных момента:

  1. Совпадение разрядности (32/64-бит): разрядность пула приложений веб-сервера и разрядность установленных модулей расширения 1С обязаны строго совпадать. Например, если модуль 1С 32-разрядный, а IIS 64-разрядный, в параметрах пула приложений IIS необходимо принудительно включить опцию «Разрешены 32-разрядные приложения» (Enable 32-Bit Applications = True).
  2. Утилита автоматической публикации webinst: для автоматического создания дескриптора default.vrd и конфигурирования веб-сервера используется консольная утилита платформы webinst, находящаяся в каталоге bin платформы 1С.
← На главную