Почему при публикации базы 1С на веб-сервере Apache зависает заставка и не появляется окно авторизации?

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

При настройке веб-доступа к информационной базе 1С:Предприятия системные администраторы нередко сталкиваются с ситуацией: веб-сервер Apache успешно стартует, публикация базы выполнена, однако при попытке входа через браузер веб-клиент бесконечно отображает стартовую заставку, а форма авторизации не появляется. При этом журнал регистрации может оставаться совершенно пустым, либо в некоторых версиях платформы выдается сообщение об отсутствии свободной лицензии.

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

Причина 1. Проблемы с получением клиентской лицензии и размещением nethasp.ini

Главная причина, из-за которой веб-клиент 1С может бесконечно висеть на стартовом экране загрузки, заключается в невозможности получить лицензию на запуск сеанса. В отличие от тонкого клиента, запущенного локально на рабочей станции, браузер не умеет напрямую опрашивать аппаратные HASP-ключи или локальные файлы лицензий пользователя. Веб-клиент всегда получает лицензию либо от веб-сервера, либо от кластера серверов 1С:Предприятия.

Если в системе используется 64-битный сервер 1С, а клиентская платформа установлена в 32-битном варианте (или наоборот), файл конфигурации сетевого драйвера HASP nethasp.ini может оказаться доступен только одной подсистеме. В результате толстый или локальный тонкий клиент успешно находят ключ, а служба 64-битного сервера 1С его «не видит».

Рассмотрим, как правильно разместить конфигурационные файлы для раздачи лицензий:

  1. Размещение файла nethasp.ini для службы сервера 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\.
  2. Системные каталоги: при работе службы от имени системной учетной записи поиск лицензий может выполняться в системных каталогах операционной системы. Для надежности можно продублировать nethasp.ini в каталог C:\Windows\System32\ (для 64-битных процессов) и C:\Windows\SysWOW64\ (для 32-битных процессов).
  3. Проверка флага выдачи лицензий: в свойствах информационной базы в консоли администрирования кластера серверов 1С обязательно проверяем параметр «Разрешить выдачу лицензий сервером 1С:Предприятия». Он должен быть установлен в значение «Да».
  4. Программные лицензии (.lic): если используются программные пин-коды, файлы с расширением .lic должны быть размещены в общедоступном каталоге C:\ProgramData\1C\licenses, к которому учетная запись службы веб-сервера и службы 1С имеют полные права на чтение.

Причина 2. Несоответствие разрядности веб-сервера Apache и модуля расширения 1С

Частая ошибка при развертывании веб-сервисов — попытка подключить к 64-разрядному веб-серверу Apache 32-разрядный модуль расширения 1С или наоборот. Веб-сервер Apache загружает модуль 1С в адресное пространство своего рабочего процесса, поэтому разрядность исполняемого файла httpd.exe и подключаемой библиотеки 1С обязаны строго совпадать.

Проанализируем конфигурацию и разберем по шагам правила подключения модулей:

  1. Для Apache 2.4 x64: необходимо подключать 64-битную библиотеку wsap24.dll, расположенную в каталоге C:\Program Files\1cv8\8.3.X.XXXX\bin\wsap24.dll.
  2. Для Apache 2.4 x86: подключается 32-битная библиотека из каталога C:\Program Files (x86)\1cv8\8.3.X.XXXX\bin\wsap24.dll.
  3. Коррекция файла конфигурации httpd.conf: откроем файл 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"
    
  4. Публикация через утилиту webinst: если при публикации из диалога Конфигуратора 1С (x86) на 64-битный Apache пути прописываются некорректно, выполним публикацию через консольную утилиту командной строки 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).

Причина 3. Настройки сетевого стека Apache и тайм-ауты

Веб-клиент 1С представляет собой сложное SPA-приложение, загружающее в браузер большое количество скриптов, стилей и ресурсов параллельными потоками. Если в конфигурации Apache отключено постоянное соединение или установлены жесткие лимиты на количество запросов, передача интерфейсных файлов может обрываться.

Проверим и скорректируем следующие параметры в httpd.conf:

  1. Параметр KeepAlive должен быть включен: KeepAlive On.
  2. Параметр MaxKeepAliveRequests рекомендуется установить на уровне не менее 100 (или 500 при одновременной работе десятков пользователей).
  3. Параметр Timeout зададим не менее 60 секунд, чтобы избежать разрыва соединения при выполнении длительных серверных вызовов в момент инициализации сеанса.

Причина 4. Права доступа учетной записи службы

Выясним, под какой учетной записью работает служба Apache. По умолчанию веб-сервер запускается от имени SYSTEM или LOCAL SERVICE. Для корректной отдачи статических файлов и взаимодействия с платформой выполним следующие шаги:

  1. Предоставим учетной записи службы веб-сервера права на чтение содержимого каталога публикации, где находится файл default.vrd.
  2. Проверим права на запись во временную системную папку C:\Windows\Temp, которая активно используется модулем расширения 1С для кэширования сеансовых данных.
  3. Проверим журналы веб-сервера access.log и error.log в папке logs веб-сервера Apache. Если в access.log при открытии базы браузером возвращаются HTTP-коды 403 (Forbidden) или 500 (Internal Server Error), это указывает на нехватку прав или ошибку синтаксиса в default.vrd.

Выполнив проверку разрядности библиотек wsap24.dll, настроив доступность nethasp.ini для всех используемых каталогов платформы и активировав раздачу лицензий сервером, мы полностью устраняем зависание заставки и обеспечиваем стабильный запуск веб-клиента 1С:Предприятия.

← На главную