При настройке веб-доступа к информационной базе 1С:Предприятия системные администраторы нередко сталкиваются с ситуацией: веб-сервер Apache успешно стартует, публикация базы выполнена, однако при попытке входа через браузер веб-клиент бесконечно отображает стартовую заставку, а форма авторизации не появляется. При этом журнал регистрации может оставаться совершенно пустым, либо в некоторых версиях платформы выдается сообщение об отсутствии свободной лицензии.
Разберем детально причины такого поведения, проанализируем взаимодействие компонентов веб-сервера с кластером серверов 1С и рассмотрим пошаговые способы исправления ошибок разрядности и лицензирования.
Главная причина, из-за которой веб-клиент 1С может бесконечно висеть на стартовом экране загрузки, заключается в невозможности получить лицензию на запуск сеанса. В отличие от тонкого клиента, запущенного локально на рабочей станции, браузер не умеет напрямую опрашивать аппаратные HASP-ключи или локальные файлы лицензий пользователя. Веб-клиент всегда получает лицензию либо от веб-сервера, либо от кластера серверов 1С:Предприятия.
Если в системе используется 64-битный сервер 1С, а клиентская платформа установлена в 32-битном варианте (или наоборот), файл конфигурации сетевого драйвера HASP nethasp.ini может оказаться доступен только одной подсистеме. В результате толстый или локальный тонкий клиент успешно находят ключ, а служба 64-битного сервера 1С его «не видит».
Рассмотрим, как правильно разместить конфигурационные файлы для раздачи лицензий:
nethasp.ini с корректно прописанным IP-адресом сервера лицензирования (параметр NH_SERVER_ADDR) скопирован в каталог конфигурации сервера 1С соответствующей разрядности. Для 64-битной платформы это путь C:\Program Files\1cv8\conf\ или каталог конкретной версии C:\Program Files\1cv8\8.3.X.XXXX\bin\conf\. Для 32-битной — C:\Program Files (x86)\1cv8\conf\.nethasp.ini в каталог C:\Windows\System32\ (для 64-битных процессов) и C:\Windows\SysWOW64\ (для 32-битных процессов)..lic должны быть размещены в общедоступном каталоге C:\ProgramData\1C\licenses, к которому учетная запись службы веб-сервера и службы 1С имеют полные права на чтение.Частая ошибка при развертывании веб-сервисов — попытка подключить к 64-разрядному веб-серверу Apache 32-разрядный модуль расширения 1С или наоборот. Веб-сервер Apache загружает модуль 1С в адресное пространство своего рабочего процесса, поэтому разрядность исполняемого файла httpd.exe и подключаемой библиотеки 1С обязаны строго совпадать.
Проанализируем конфигурацию и разберем по шагам правила подключения модулей:
wsap24.dll, расположенную в каталоге C:\Program Files\1cv8\8.3.X.XXXX\bin\wsap24.dll.C:\Program Files (x86)\1cv8\8.3.X.XXXX\bin\wsap24.dll.httpd.conf в каталоге Apache (например, conf/httpd.conf) и проверим директиву загрузки модуля. Она должна указывать на правильную версию Apache и точный путь:
# Пример для Apache 2.4 x64 и платформы 1C:Предприятие 8.3
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.10.2580/bin/wsap24.dll"
webinst нужной разрядности:
"C:\Program Files\1cv8\8.3.10.2580\bin\webinst.exe" -publish -apache24 -wsdir BaseName -dir "C:\inetpub\wwwroot\BaseName" -connstr "Srvr=ServerName;Ref=BaseName;" -confpath "C:\Apache24\conf\httpd.conf"
Обратим внимание: разрядность самого кластера серверов 1С (серверных рабочих процессов rphost) не обязана совпадать с разрядностью Apache, так как взаимодействие модуля wsap24.dll с кластером 1С происходит по сетевому протоколу TCP/IP через менеджер кластера (порт 1541).
Веб-клиент 1С представляет собой сложное SPA-приложение, загружающее в браузер большое количество скриптов, стилей и ресурсов параллельными потоками. Если в конфигурации Apache отключено постоянное соединение или установлены жесткие лимиты на количество запросов, передача интерфейсных файлов может обрываться.
Проверим и скорректируем следующие параметры в httpd.conf:
KeepAlive должен быть включен: KeepAlive On.MaxKeepAliveRequests рекомендуется установить на уровне не менее 100 (или 500 при одновременной работе десятков пользователей).Timeout зададим не менее 60 секунд, чтобы избежать разрыва соединения при выполнении длительных серверных вызовов в момент инициализации сеанса.Выясним, под какой учетной записью работает служба Apache. По умолчанию веб-сервер запускается от имени SYSTEM или LOCAL SERVICE. Для корректной отдачи статических файлов и взаимодействия с платформой выполним следующие шаги:
default.vrd.C:\Windows\Temp, которая активно используется модулем расширения 1С для кэширования сеансовых данных.access.log и error.log в папке logs веб-сервера Apache. Если в access.log при открытии базы браузером возвращаются HTTP-коды 403 (Forbidden) или 500 (Internal Server Error), это указывает на нехватку прав или ошибку синтаксиса в default.vrd.Выполнив проверку разрядности библиотек wsap24.dll, настроив доступность nethasp.ini для всех используемых каталогов платформы и активировав раздачу лицензий сервером, мы полностью устраняем зависание заставки и обеспечиваем стабильный запуск веб-клиента 1С:Предприятия.