При настройке взаимодействия 64-разрядного сервера 1С:Предприятие с веб-сервером Apache 2.4 (64 бит) разработчики и системные администраторы часто сталкиваются с ситуацией, когда опубликованная информационная база или HTTP-сервисы возвращают ошибки с кодами 404 (Not Found) или 405 (Method Not Allowed). Рассмотрим подробно технические требования к такой конфигурации, разберем причины возникновения ошибок и способы их устранения.
Для корректной работы 64-битной версии Apache требуется соответствующий 64-разрядный модуль расширения веб-сервера 1С — библиотека wsap24.dll. Загрузить 32-битную библиотеку в 64-битный процесс Apache невозможно.
Проанализируем важный нюанс, который часто приводит к сбоям при обновлении платформы:
wsap24.dll оказывается заблокирован процессом. В результате платформа не может обновить библиотеку, и веб-сервер продолжает использовать старую версию модуля, что влечет за собой непредсказуемое поведение и ошибки подключения.wsap24.dll в операционной системе Windows должны быть установлены соответствующие компоненты Microsoft Visual C++ Redistributable (x64).Для обеспечения стабильной работы 64-разрядного веб-сервера Apache с платформой 1С необходимо внести изменения в основной конфигурационный файл httpd.conf.
Выясним причину возможных утечек памяти и падения службы: по умолчанию Apache может использовать функции отбражения файлов в память (MMAP) и системный вызов sendfile. При высокой нагрузке на 1С это приводит к нестабильности сервера. Отключим данные функции в httpd.conf:
EnableMMAP off
EnableSendfile off
Также убедимся, что путь к библиотеке загрузки модуля 1С указан правильно и соответствует установленной 64-битной платформе, а в блоке доступа к каталогу публикации заданы корректные директивы Apache 2.4:
LoadModule _1c24_module "C:/Program Files/1cv8/8.3.10.2299/bin/wsap24.dll"
<Directory "C:/inetpub/wwwroot/base">
AllowOverride None
Options None
Require all granted
SetHandler 1c-application
</Directory>
Если при вызове HTTP-сервиса веб-сервер возвращает код 404, разберем по шагам возможные источники проблемы:
Test, то запрос по адресу /hs/test вернет ошибку 404. Корневой URL и шаблоны URL должны строго совпадать с отправляемым HTTP-запросом.default.vrd в каталоге публикации информационной базы. Путь к информационной базе и настройки сервисов должны быть сформированы без ошибок.Ошибка 405 означает, что веб-сервер нашли ресурс по указанному URL, но запрошенный HTTP-метод (GET, POST, PUT, DELETE) не поддерживается для данного адреса.
Рассмотрим порядок отладки ошибки 405:
POST, а в шаблоне URL определен только метод GET, сервер 1С вернет ошибку 405.POST).AllowMethods или блоки <Limit>), чтобы веб-сервер не блокировал входящие запросы до передачи их в модуль 1С.Учетная запись, от имени которой запущен сервис Apache2.4, должна обладать достаточными правами в системе:
bin платформы 1С (где расположен файл wsap24.dll).default.vrd.Если после выполнения всех настроек Apache продолжает работать нестабильно, в качестве альтернативного решения для Windows-систем можно рассмотреть публикацию базы на веб-сервере Internet Information Services (IIS), который поставляется в составе ОС и штатно интегрируется с 64-битной платформой 1С.