Модуль расширения веб-сервера 1С — это библиотека, которая встраивается в Apache или IIS и связывает веб-сервер с кластером 1С:Предприятие. Без этого модуля веб-сервер не понимает запросы к информационным базам. С ним — браузер, тонкий клиент, мобильное приложение, HTTP-сервисы и REST API работают через HTTP/HTTPS.
Модуль поставляется в отдельном пакете платформы 1С. На Linux это wsap24.so (для Apache 2.4), на Windows — wsapISAPI.dll (для IIS) и wsap24.dll (для Apache под Windows). Название расшифровывается как «web server apache 2.4» — цифра 24 указывает на совместимость с конкретной версией Apache.
В этой статье: как устроен модуль, установка на Apache (Linux) и IIS (Windows), публикация информационной базы, пошаговая инструкция и типичные ошибки с решениями. Если вы уже настроили Apache и нужен только модуль — переходите сразу к разделу установки.
Что такое модуль расширения веб-сервера 1С
Модуль расширения — это разделяемая библиотека (shared library), которая загружается в адресное пространство веб-сервера. При каждом HTTP-запросе к опубликованной базе модуль открывает TCP-соединение к серверу приложений 1С (ragent → rmngr → rphost), передаёт данные и возвращает ответ в браузер.
Модуль не является самостоятельным приложением. Он работает только внутри веб-сервера — Apache или IIS. Без веб-сервера модулю негде запуститься. Без модуля веб-сервер не знает протокол 1С.
Варианты модуля для разных платформ
| Файл | Веб-сервер | ОС | Пакет |
|---|---|---|---|
| wsap24.so | Apache 2.4 | Linux | 1c-enterprise83-ws (.deb / .rpm) |
| wsap24.dll | Apache 2.4 | Windows | Установщик платформы 1С (компонент «Модули расширения веб-сервера») |
| wsapISAPI.dll | IIS 8.5+ | Windows | Установщик платформы 1С (компонент «Модули расширения веб-сервера») |
Разрядность модуля должна совпадать с разрядностью веб-сервера. 64-битный Apache требует 64-битный wsap24.so. Это частая причина ошибок — подробности в разделе «Типичные ошибки».
Цепочка обработки запроса
Каждый запрос от браузера до базы данных проходит четыре звена. Обрыв на любом из них приводит к ошибке — ошибке HTTP или коду 500.
| Звено | Компонент | Порт | Роль |
|---|---|---|---|
| 1 | Веб-сервер (Apache / IIS) | 80 / 443 | Принимает HTTP/HTTPS-запросы от браузера |
| 2 | Модуль 1С (wsap24 / wsapISAPI) | — | Преобразует HTTP-запрос в вызов кластера 1С |
| 3 | Сервер приложений (ragent / rmngr / rphost) | 1540, 1541, 1560+ | Обрабатывает бизнес-логику 1С |
| 4 | СУБД (MS SQL / PostgreSQL) | 1433 / 5432 | Хранение и выдача данных |
Модуль работает в том же процессе, что и веб-сервер. Это значит: если модуль «упадёт», упадёт и рабочий процесс Apache/IIS. На практике это случается редко, но при диагностике учитывайте — ошибки модуля попадают в логи веб-сервера, а не в журнал регистрации 1С.
Установка модуля расширения на Apache (Linux)
Apache 2.4 — стандартный выбор для Linux-серверов 1С. Перед установкой модуля убедитесь, что Apache установлен и запущен, а кластер серверов 1С настроен и работает.
Установка пакета 1c-enterprise83-ws
Модуль поставляется в пакете 1c-enterprise83-ws. Скачайте его с releases.1c.ru вместе с серверными компонентами. Порядок установки важен: common → server → ws.
# Ubuntu / Debian
sudo dpkg -i 1c-enterprise83-common_8.3.*.deb
sudo dpkg -i 1c-enterprise83-server_8.3.*.deb
sudo dpkg -i 1c-enterprise83-ws_8.3.*.deb
# Если ошибка зависимостей:
sudo apt install -f
# RHEL / CentOS / AlmaLinux
sudo rpm -ivh 1c-enterprise83-common-8.3.*.rpm
sudo rpm -ivh 1c-enterprise83-server-8.3.*.rpm
sudo rpm -ivh 1c-enterprise83-ws-8.3.*.rpm
Если пакеты common и server уже установлены — ставьте только ws. Пакет ws содержит модуль wsap24.so и утилиту webinst для публикации баз.
Расположение модуля после установки
# Найти wsap24.so
find /opt/1cv8 -name "wsap24.so"
# /opt/1cv8/x86_64/8.3.25.1257/wsap24.so
Путь включает номер версии платформы. При обновлении 1С каталог изменится — модуль нужно будет переподключить в конфигурации Apache.
Подключение модуля к Apache
Модуль подключается директивой LoadModule. Способ зависит от дистрибутива.
Ubuntu / Debian:
# Создать файл модуля
sudo tee /etc/apache2/mods-available/1c.load <<'EOF'
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.25.1257/wsap24.so"
EOF
# Включить модуль
sudo a2enmod 1c
# Проверить конфигурацию
apache2ctl configtest
# Syntax OK
# Перезапустить Apache
sudo systemctl restart apache2
RHEL / CentOS / AlmaLinux:
# Создать файл модуля
sudo tee /etc/httpd/conf.modules.d/1c.conf <<'EOF'
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.25.1257/wsap24.so"
EOF
# Проверить конфигурацию
httpd -t
# Syntax OK
# Перезапустить
sudo systemctl restart httpd
Замените 8.3.25.1257 на вашу версию платформы. Узнать точную версию: ls /opt/1cv8/x86_64/.
Проверка загрузки модуля
# Проверить, что модуль загружен
apache2ctl -M | grep 1cws
# _1cws_module (shared)
# Если модуль не в списке — смотрите error.log:
sudo tail -20 /var/log/apache2/error.log # Ubuntu
sudo tail -20 /var/log/httpd/error_log # RHEL
Если модуль загружен — Apache готов принимать запросы к информационным базам. Осталось опубликовать базу.
Установка модуля расширения на IIS (Windows)
На Windows Server модуль расширения работает через IIS как ISAPI-расширение. IIS — штатный веб-сервер Windows, предустановлен в серверных редакциях.
Подготовка IIS
Если роль Web Server (IIS) не установлена — добавьте через Server Manager или PowerShell:
# PowerShell (от имени администратора)
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Install-WindowsFeature -Name Web-ISAPI-Ext, Web-ISAPI-Filter
Компоненты Web-ISAPI-Ext и Web-ISAPI-Filter обязательны — без них IIS не загрузит модуль 1С. Проверьте: откройте http://localhost на сервере — должна отобразиться стартовая страница IIS.
Установка модуля 1С
Модуль устанавливается вместе с платформой 1С:Предприятие. В установщике выберите компонент «Модули расширения веб-сервера».
После установки модуль находится в каталоге платформы:
C:\Program Files\1cv8\8.3.25.1257\bin\wsapISAPI.dll
Файл wsapISAPI.dll — ISAPI-расширение для IIS. Файл wsap24.dll — для Apache под Windows (используется редко).
Настройка пула приложений IIS
Создайте отдельный пул приложений для 1С. Это изолирует рабочие процессы 1С от остальных сайтов IIS.
# PowerShell
# Создать пул приложений
New-WebAppPool -Name "1CPool"
# Настроить пул
Set-ItemProperty "IIS:\AppPools\1CPool" -Name "enable32BitAppOnWin64" -Value $false
Set-ItemProperty "IIS:\AppPools\1CPool" -Name "managedRuntimeVersion" -Value ""
Set-ItemProperty "IIS:\AppPools\1CPool" -Name "processModel.identityType" -Value "LocalSystem"
Параметры пула:
- enable32BitAppOnWin64 = false — 64-битный режим. Должен совпадать с разрядностью модуля wsapISAPI.dll
- managedRuntimeVersion = «» — без .NET (модуль 1С — нативный ISAPI, не управляемый код)
- identityType = LocalSystem — учётная запись с достаточными правами. В продуктивной среде создайте отдельную сервисную учётную запись
Регистрация ISAPI-расширения
Добавьте wsapISAPI.dll как разрешённое ISAPI-расширение в IIS:
- Откройте IIS Manager → выберите сервер → ISAPI and CGI Restrictions
- Нажмите Add → укажите путь к wsapISAPI.dll
- Описание:
1C Enterprise 8.3 Web Extension - Установите флажок Allow extension path to execute
Без этого шага IIS заблокирует загрузку модуля и вернёт ошибку 404.2 или 403.1.
Через PowerShell:
# Разрешить ISAPI-расширение
Add-WebConfiguration "/system.webServer/security/isapiCgiRestriction" -PSPath "MACHINE/WEBROOT/APPHOST" -Value @{
path = "C:\Program Files\1cv8\8.3.25.1257\bin\wsapISAPI.dll"
allowed = "true"
description = "1C Enterprise 8.3 Web Extension"
}
Публикация информационной базы через веб
Публикация — привязка URL-адреса к информационной базе в кластере 1С. После публикации по адресу http://сервер/имя-базы откроется веб-клиент 1С.
Одна база — одна публикация. На одном веб-сервере можно опубликовать несколько баз с разными URL.
Три способа публикации: утилита webinst (командная строка), Конфигуратор (графический интерфейс), ручная настройка (default.vrd + конфиг веб-сервера).
Через утилиту webinst (Linux)
webinst — штатная утилита 1С для управления публикациями. Работает из командной строки, не требует GUI. Основной способ для Linux-серверов.
# Создать каталог публикации
sudo mkdir -p /var/www/1c/accounting
sudo chown www-data:www-data /var/www/1c/accounting
# Опубликовать базу
sudo /opt/1cv8/x86_64/8.3.25.1257/webinst \
-apache24 \
-wsdir accounting \
-dir /var/www/1c/accounting \
-connstr "Srvr=localhost;Ref=accounting;" \
-confpath /etc/apache2/apache2.conf
# Перезапустить Apache
sudo systemctl restart apache2
Параметры webinst:
- -apache24 — тип веб-сервера
- -wsdir — имя публикации, становится частью URL:
/accounting - -dir — каталог для файла default.vrd с параметрами подключения
- -connstr — строка подключения к базе (Srvr — адрес сервера, Ref — имя базы в кластере)
- -confpath — путь к конфигурации Apache. Утилита добавит директивы Alias и Directory
Для RHEL/CentOS: замените -confpath на /etc/httpd/conf/httpd.conf, владельца каталога — на apache:apache.
Через Конфигуратор (Windows/Linux с GUI)
Если на сервере есть графическая среда:
- Откройте Конфигуратор нужной базы
- Администрирование → Публикация на веб-сервере
- Выберите веб-сервер (Apache 2.4 или IIS)
- Укажите имя публикации и каталог
- Нажмите «Опубликовать»
Конфигуратор создаст default.vrd, пропишет настройки в конфигурации веб-сервера и перезапустит его. На Windows это самый простой способ — Конфигуратор автоматически находит IIS и создаёт виртуальный каталог.
Ручная настройка (default.vrd)
Ручная настройка нужна для нестандартных случаев: отдельный виртуальный хост, дополнительные параметры .vrd, когда webinst недоступен.
Публикация состоит из двух компонентов: файл default.vrd (описание подключения к базе) и конфигурация веб-сервера (маршрутизация URL к модулю 1С).
Файл 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="/accounting"
ib="Srvr=localhost;Ref=accounting;">
</point>
Параметр base — URL-путь публикации. Параметр ib — строка подключения к базе. Для HTTP-сервисов и REST API в default.vrd добавляются дополнительные элементы — <httpServices> и <ws>.
Конфигурация Apache:
Alias "/accounting" "/var/www/1c/accounting/"
<Directory "/var/www/1c/accounting/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "/var/www/1c/accounting/default.vrd"
</Directory>
Директива SetHandler 1c-application указывает Apache, что запросы обрабатывает модуль wsap24. Без Require all granted Apache 2.4 запретит доступ.
Подробная инструкция по настройке Apache для 1С — в отдельной статье.
Пошаговая инструкция
Типичные ошибки модуля расширения веб-сервера 1С
Пять ошибок, с которыми сталкиваются при установке и работе модуля. Для каждой — причина и решение.
Модуль не загружается: wrong ELF class (Linux)
В error.log Apache:
Cannot load /opt/1cv8/.../wsap24.so into server:
/opt/1cv8/.../wsap24.so: wrong ELF class: ELFCLASS32
Причина: разрядность модуля и Apache не совпадают. 32-битный модуль в 64-битный Apache не загрузится.
Решение: проверьте разрядность обоих:
# Разрядность Apache
file $(which apache2 || which httpd)
# .../apache2: ELF 64-bit LSB ...
# Разрядность модуля
file /opt/1cv8/x86_64/8.3.25.1257/wsap24.so
# .../wsap24.so: ELF 64-bit LSB ...
Оба должны быть одинаковой разрядности. Скачайте правильную версию пакета 1c-enterprise83-ws с releases.1c.ru. Каталог x86_64 — 64-битные файлы, i386 — 32-битные.
Ошибка 500 при обращении к опубликованной базе
Модуль загружен, но при открытии URL базы — ошибка 500 (Internal Server Error).
Причина: модуль не может подключиться к кластеру 1С. Либо служба 1С не запущена, либо порты заблокированы, либо строка подключения в default.vrd некорректна.
Решение: проверяйте по цепочке:
- Служба 1С запущена:
systemctl status srv1cv83(Linux) илиsc query "1C:Enterprise 8.3 Server Agent"(Windows) - Порты слушаются:
ss -tlnp | grep -E "1540|1541"(Linux) илиnetstat -an | findstr "1540 1541"(Windows) - default.vrd: параметры Srvr и Ref совпадают с реальным кластером
- Файрвол не блокирует порты 1540-1591 между веб-сервером и сервером 1С
Ошибка 503 Service Unavailable
Причина: кластер 1С перегружен — нет свободных рабочих процессов. Все rphost заняты. Модуль подключается к кластеру, но кластер не может назначить обработчик.
Решение:
- Увеличьте количество рабочих процессов в консоли кластера
- Проверьте нагрузку на сервер: CPU, RAM, дисковая подсистема
- Увеличьте таймаут Apache:
Timeout 300в httpd.conf (по умолчанию 60 секунд) - Для IIS: увеличьте Queue Length в настройках пула приложений
Ошибка 403 Forbidden — права доступа
Причина: веб-сервер не имеет прав на каталог публикации или файл default.vrd.
Решение для Linux:
# Проверить владельца
ls -la /var/www/1c/accounting/
# Исправить (Ubuntu)
sudo chown -R www-data:www-data /var/www/1c/accounting/
# Исправить (RHEL)
sudo chown -R apache:apache /var/www/1c/accounting/
# Разрешения
sudo chmod 755 /var/www/1c/accounting/
sudo chmod 644 /var/www/1c/accounting/default.vrd
Также проверьте директиву Require all granted в блоке <Directory>. Без неё Apache 2.4 запрещает доступ по умолчанию.
Решение для Windows/IIS: учётная запись пула приложений (по умолчанию ApplicationPoolIdentity) должна иметь права Read & Execute на каталог публикации. Проверьте через вкладку Security в свойствах папки.
SELinux блокирует модуль (RHEL/CentOS)
Причина: SELinux запрещает Apache загружать модуль из /opt/1cv8/ или устанавливать TCP-соединения к портам кластера.
Решение:
# Разрешить Apache сетевые подключения
sudo setsebool -P httpd_can_network_connect 1
# Установить контекст для модуля
sudo chcon -t httpd_modules_t /opt/1cv8/x86_64/8.3.25.1257/wsap24.so
# Контекст для каталога публикации
sudo chcon -R -t httpd_sys_content_t /var/www/1c/
Диагностика: sudo ausearch -m avc --start recent. Не отключайте SELinux на продуктивном сервере — настройте контексты.
Вопросы и ответы
Чем отличается wsap24.so от wsapISAPI.dll?
wsap24.so — модуль для Apache 2.4, работает на Linux и Windows. wsapISAPI.dll — ISAPI-расширение для IIS, работает только на Windows. Оба модуля выполняют одну функцию: связывают веб-сервер с кластером 1С:Предприятие. Выбор зависит от ОС и веб-сервера: Linux → Apache + wsap24.so, Windows → IIS + wsapISAPI.dll.
Нужно ли переустанавливать модуль после обновления платформы 1С?
Да. Модуль привязан к конкретной версии платформы. После обновления 1С:Предприятие путь к модулю меняется (новый номер версии в каталоге). Обновите путь в LoadModule для Apache или переопубликуйте базу через Конфигуратор для IIS. Без этого веб-сервер будет использовать старый модуль, который может быть несовместим с новой версией сервера.
Можно ли установить только модуль расширения без сервера 1С?
На Linux: пакет 1c-enterprise83-ws зависит от common, но можно установить без server — если сервер 1С на другой машине. На машине с веб-сервером нужен только модуль wsap24.so. В строке подключения default.vrd укажите IP сервера 1С вместо localhost. На Windows: при установке платформы отметьте только «Модули расширения веб-сервера».
Как проверить, загружен ли модуль 1С в Apache?
Выполните команду: apache2ctl -M | grep 1cws (Ubuntu) или httpd -M | grep 1cws (RHEL). Если модуль загружен, вы увидите строку _1cws_module (shared). Если модуль не в списке — проверьте error.log веб-сервера на ошибки загрузки. Частые причины: неправильный путь в LoadModule или несовпадение разрядности.
Какой веб-сервер лучше для 1С — Apache или IIS?
По производительности для 1С они одинаковы — узкое место не веб-сервер, а сервер приложений и СУБД. Apache работает на Linux и Windows, IIS — только на Windows. Для Linux Apache — единственный вариант. Для Windows выбирают IIS, если инфраструктура целиком на Windows Server. Важнее правильно настроить кластер 1С и СУБД, чем выбирать между Apache и IIS.
Почему после публикации 1С открывается пустая страница?
Модуль загружен, но не может подключиться к кластеру 1С. Проверьте: служба srv1cv83 запущена, порты 1540-1541 слушаются, строка подключения в default.vrd корректна (Srvr и Ref совпадают с кластером). На RHEL/CentOS дополнительно: sudo setsebool -P httpd_can_network_connect 1. Подробнее — в статье про ошибку HTTP при обращении к серверу 1С.
Как опубликовать несколько баз 1С на одном веб-сервере?
Каждая база публикуется с уникальным именем: /accounting, /zup, /ut. Для каждой создаётся свой каталог с default.vrd и отдельная секция в конфигурации веб-сервера. Одного модуля wsap24.so (или wsapISAPI.dll) достаточно для всех публикаций. На Linux повторите webinst с другим -wsdir. На Windows — повторите публикацию через Конфигуратор для каждой базы.
Итог
Модуль расширения веб-сервера 1С — обязательный компонент для веб-доступа к информационным базам. На Linux это wsap24.so для Apache, на Windows — wsapISAPI.dll для IIS. Установка занимает 10-15 минут: поставить пакет, подключить модуль к веб-серверу, опубликовать базу через webinst или Конфигуратор.
Основные грабли: несовпадение разрядности модуля и веб-сервера, права на каталог публикации, SELinux на RHEL/CentOS, незапущенная служба кластера 1С. Каждую ошибку можно диагностировать одной командой — все описаны выше.
Для более детальной настройки Apache — инструкция по настройке веб-сервера 1С на Apache. Если при работе через веб возникает ошибка HTTP — разбор причин и решений. Ошибка 500 в веб-сервисе — отдельная статья. Производительность веб-клиента зависит от сервера приложений — подберите правильную конфигурацию на странице подбора сервера.