Как настроить Apache для 1С:Предприятие, если они находятся на разных серверах?

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

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

Понимание архитектуры взаимодействия

Прежде всего, разберем базовый принцип: для того чтобы Apache мог работать с 1С, на сервере, где установлен Apache, обязательно должен быть установлен компонент 1С "Модуль расширения веб-сервера". Многие ошибочно полагают, что если база данных и сервер 1С находятся на другой машине, то на сервере с веб-сервером ничего от 1С устанавливать не нужно. Это не так. Веб-сервер Apache сам по себе не умеет "общаться" с протоколами 1С. Ему нужен посредник — библиотека (модуль), которая будет принимать HTTP-запросы и перенаправлять их в кластер 1С.

Проанализируем основные требования к установке:

  1. На сервере Apache устанавливаем клиентскую часть 1С:Предприятие и модуль расширения веб-сервера.
  2. Разрядность (32 или 64 бита) модуля расширения 1С должна строго совпадать с разрядностью установленного Apache.
  3. Версия платформы на сервере Apache должна соответствовать версии платформы, на которой работает кластер 1С.

Шаг 1: Подготовка сетевой связности

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

Если между сервером Apache и сервером 1С стоит брандмауэр (Firewall), необходимо разрешить входящие соединения на эти порты со стороны IP-адреса веб-сервера. Также убедимся, что сервер Apache может разрешить (resolve) сетевое имя сервера 1С. Если DNS настроен некорректно, можно временно добавить запись в файл hosts.

Шаг 2: Установка компонентов 1С на сервер Apache

Запустим программу установки 1С:Предприятие на сервере, где находится Apache. В списке компонентов выберем:

После установки у нас в каталоге bin платформы появятся файлы модулей: wsap24.dll (для Windows) или wsap24.so (для Linux). Эти файлы — сердце нашей интеграции.

Шаг 3: Публикация информационной базы с помощью утилиты webinst

Теперь рассмотрим, как выполнить публикацию. Самый надежный способ при разнесенных серверах — использование утилиты командной строки webinst. Она позволяет четко прописать строку соединения с удаленным сервером. Разберем синтаксис команды для Apache 2.4 на примере клиент-серверной базы.

Рассмотрим пример команды для Windows:


webinst -publish -apache24 -wsdir "MyBase" -dir "C:\inetpub\wwwroot\MyBase" -connstr "Srvr=192.168.1.50;Ref=MyBaseName;" -confpath "C:\Program Files\Apache24\conf\httpd.conf"

Разберем параметры подробнее:

Шаг 4: Ручная настройка конфигурации Apache (httpd.conf)

Если автоматическая публикация через webinst выдает ошибку, проанализируем, как внести правки вручную. Откроем файл httpd.conf веб-сервера Apache и убедимся, что в конце файла добавлены строки загрузки модуля 1С.

Для 64-битной платформы на Windows это выглядит примерно так:


LoadModule _1cws_module "C:/Program Files/1cv8/8.3.23.1865/bin/wsap24.dll"

Alias "/MyBase" "C:/inetpub/wwwroot/MyBase/"
<Directory "C:/inetpub/wwwroot/MyBase/">
    AllowOverride None
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/inetpub/wwwroot/MyBase/default.vrd"
</Directory>

Важно помнить: пути в конфигурационном файле Apache должны использовать прямой слэш /, даже в Windows. Если вы используете Linux, путь к модулю будет выглядеть как /opt/1cv8/x86_64/8.3.23.1865/wsap24.so.

Шаг 5: Настройка файла default.vrd

При разнесении серверов файл default.vrd становится ключевым звеном. Проверим его содержимое. В нем обязательно должна быть указана верная строка соединения с удаленным кластером.


<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       base="/MyBase"
       ib="Srvr=&quot;192.168.1.50&quot;;Ref=&quot;MyBaseName&quot;;">
    <standardOdata enable="true"
                   publishExtensionsByDefault="true"/>
</point>

Обратите внимание на использование &quot; для кавычек внутри атрибута ib. Если вы используете 1С:Документооборот, убедитесь, что в этом файле также прописаны публикации для веб-сервисов, так как 1С:ДО активно использует их для интеграции.

Шаг 6: Права доступа и безопасность

Выясним причину, по которой база может не открываться даже после правильной настройки конфигов. Часто это права доступа. Пользователь, от имени которого запущен Apache (в Windows это обычно SYSTEM или LocalService, в Linux — www-data или apache), должен иметь полные права на папку, в которой лежит файл default.vrd.

Если вы работаете в среде Linux, проанализируем влияние SELinux. Эта система безопасности может блокировать сетевые соединения для веб-сервера. Выполним команду для проверки:

setsebool -P httpd_can_network_connect 1

Эта команда разрешает процессу httpd инициировать сетевые соединения, что критически важно, так как наш Apache должен подключиться к серверу 1С по портам 1540, 1541 и другим.

Шаг 7: Особенности работы с SSL

Если вы настраиваете доступ через HTTPS (что крайне рекомендуется для 1С:ДО), убедитесь, что сертификаты установлены корректно в Apache. При разнесенных серверах шифрование обычно происходит между браузером пользователя и Apache. Внутренний трафик между Apache и кластером 1С может идти без шифрования (по локальной сети), но если требуется полная защита, необходимо настраивать сертификаты и на стороне сервера приложений 1С.

Итоги настройки

Подведем итог нашей совместной работы. Для успешной работы Apache и 1С на разных серверах мы выполнили:

  1. Установку модуля расширения веб-сервера той же версии и разрядности, что и кластер 1С, на машину с веб-сервером.
  2. Настройку Firewall для пропуска трафика между серверами по портам кластера 1С.
  3. Публикацию через webinst с указанием параметра -connstr, указывающего на удаленный сервер.
  4. Проверку прав доступа пользователя веб-сервера к каталогу публикации.

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

← На главную