Как поставить и подключить модули веб-сервера 1С к Apache, IIS и NGINX
Содержание
Модули расширения веб-сервера ставятся вместе с платформой 1С: в установщике отмечают компонент «Модули расширения веб-сервера», а на Linux добавляют компонент ws. После этого модуль подключают к Apache 2.4 строкой LoadModule или к IIS через сопоставление обработчиков, публикуют базу — и она открывается в браузере.
Типичная ситуация: бухгалтер уходит на удалёнку, а RDP-доступ давать не хотят. Администратор решает открыть базу через веб-клиент. Платформа на сервере есть, Apache стоит, но базы по адресу нет — потому что модуль расширения веб-сервера не установлен или не подключён. Ниже — полный путь от установки модуля до проверки, для Windows и Linux.
Что это за модули расширения и откуда их брать
Модуль расширения — это библиотека, которую загружает веб-сервер. Она принимает HTTP-запросы веб-клиента, тонкого клиента по HTTP, веб-сервисов и HTTP-сервисов и передаёт их в информационную базу. Отдельно модули не продаются и не скачиваются: они входят в дистрибутив технологической платформы.
| Веб-сервер | Файл модуля на Windows | Файл модуля на Linux |
|---|---|---|
| Apache 2.4 | wsap24.dll | wsap24.so |
| Apache 2.2 (устаревший) | wsap22.dll | wsap22.so |
| IIS | wsisapi.dll | — |
| NGINX | модуля нет | модуля нет |
Где лежат файлы после установки:
- 🪟 Windows:
C:\Program Files\1cv8\8.3.xx.xxxx\bin\ - 🐧 Linux, платформа 8.3.20 и новее:
/opt/1cv8/x86_64/8.3.xx.xxxx/ - 🐧 Linux, более ранние сборки:
/opt/1C/v8.3/x86_64/
Версия модуля должна совпадать с версией сервера 1С до последней цифры. Если кластер работает на 8.3.24.1467, модуль тоже ставят из 8.3.24.1467. Иначе веб-клиент выдаст ошибку несоответствия версий клиента и сервера.
Разрядность тоже имеет значение. 64-битный Apache загружает только 64-битный wsap24.dll, 32-битный — только 32-битный. Это самая частая причина, по которой Apache на Windows не стартует после добавления LoadModule.
Подготовка сервера к установке модулей
До установки проверьте пять вещей. Так вы не будете переделывать конфигурацию по второму кругу.
- Версия платформы. Узнайте точный номер сборки на сервере 1С. В клиент-серверном варианте модуль ставят той же сборки, что и кластер.
- Разрядность. Определитесь, будет ли веб-сервер 64-битным. Для новых установок выбирайте 64 бита везде.
- Сам веб-сервер. Apache 2.4 или IIS уже установлен и отдаёт стартовую страницу по
http://localhost. - Сетевой доступ. Веб-сервер должен достучаться до агента сервера 1С (порт 1540), менеджера кластера (1541) и диапазона рабочих процессов, заданного в свойствах рабочего сервера (по умолчанию 1560–1591).
- Права. Для файловой базы учётная запись веб-сервера (
www-data,apache,IIS_IUSRS) должна иметь чтение и запись в каталог базы.
Публиковать файловую базу через веб можно, но для 3–5 пользователей это уже медленно. Для постоянной работы через браузер берите клиент-серверный вариант.
Про лицензии: каждый сеанс веб-клиента занимает клиентскую лицензию, как и обычный клиент. Без доступной лицензии база не откроется ни в браузере, ни в тонком клиенте.
Установка модуля расширения для Apache 2.4
Windows
- Запустите
setup.exeиз дистрибутива платформы (подойдёт и полный дистрибутив, и дистрибутив сервера). - В списке компонентов включите «Модули расширения веб-сервера». Если платформа уже стоит, запустите установщик ещё раз и выберите изменение состава компонентов.
- Убедитесь, что в папке
binпоявилсяwsap24.dll.
Apache для Windows обычно берут в сборке Apache Lounge. Его ставят службой командой из каталога bin:
httpd.exe -k install
httpd.exe -k start
Строку LoadModule добавлять вручную не обязательно: её допишет публикация из конфигуратора (о ней ниже). Если правите httpd.conf сами, путь берите в кавычки — в нём есть пробел:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.24.1467/bin/wsap24.dll"
Debian и Ubuntu
Начиная с 8.3.20 платформа для Linux поставляется единым установщиком setup-full-…-x86_64.run. Модули веб-сервера — компонент ws:
sudo apt install apache2
sudo ./setup-full-8.3.24.1467-x86_64.run --mode unattended --enable-components server,ws
Если на машине нужен только веб-сервер без сервера 1С, оставьте --enable-components ws. Для старых сборок ставят пакеты 1c-enterprise83-common и 1c-enterprise83-ws той же версии через dpkg -i.
Основной конфиг Apache — /etc/apache2/apache2.conf. Именно его указывают при публикации.
CentOS, RHEL и совместимые (AlmaLinux, Rocky, РЕД ОС)
sudo dnf install httpd
sudo ./setup-full-8.3.24.1467-x86_64.run --mode unattended --enable-components ws
sudo systemctl enable --now httpd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
Отличия от Debian:
- 📁 конфиг лежит в
/etc/httpd/conf/httpd.conf; - 👤 Apache работает от пользователя
apache, а неwww-data; - 🛡️ включён SELinux. По умолчанию он не даёт httpd открывать исходящие соединения, и модуль не достучится до кластера 1С. Разрешите это:
sudo setsebool -P httpd_can_network_connect on
Если после этого Apache не грузит модуль, посмотрите отказы SELinux в /var/log/audit/audit.log. Отключать SELinux целиком ради 1С не нужно.
Подключение модуля к IIS на Windows Server
IIS на Windows Server 2016 и новее ставится через «Диспетчер серверов» → «Добавить роли и компоненты» → роль «Веб-сервер (IIS)». В составе роли, в группе «Разработка приложений», включите:
- ✅ «Расширения ISAPI»;
- ✅ «Фильтры ISAPI».
Без них wsisapi.dll просто не подключится, а публикация из конфигуратора завершится ошибкой.
Дальше поставьте платформу с компонентом «Модули расширения веб-сервера» — так же, как для Apache. Публикация из конфигуратора сама создаст приложение в IIS и сопоставление обработчика на wsisapi.dll.
Что проверить в «Диспетчере служб IIS» после публикации:
- Пул приложений. Если платформа 64-битная, параметр «Разрешить 32-разрядные приложения» должен быть
False. Для 32-битной платформы —True. - Сопоставление обработчиков. У приложения базы есть обработчик с модулем
IsapiModule, путь*, исполняемый файл —wsisapi.dllнужной версии. - Ограничения ISAPI и CGI на уровне сервера:
wsisapi.dllдолжен быть разрешён. - Права. Группе
IIS_IUSRSнужно чтение на каталог публикации и каталогbinплатформы. Для файловой базы — ещё и изменение в каталоге базы.
После обновления платформы путь к wsisapi.dll меняется, потому что в нём есть номер сборки. Перепубликуйте базу или поправьте путь в сопоставлении обработчиков вручную.
NGINX и 1С: работа в связке с Apache
Модуля расширения 1С для NGINX нет. Подключить базу напрямую к NGINX нельзя, поэтому схема всегда такая: NGINX стоит снаружи и принимает HTTPS, а запросы проксирует на Apache или IIS с модулем 1С.
Зачем такая связка:
- 🔒 TLS-сертификаты (в том числе Let’s Encrypt) удобнее держать на NGINX;
- 🚀 NGINX сам отдаёт статику и держит множество соединений;
- 🧱 Apache с модулем 1С слушает только локальный адрес и не торчит в интернет.
Переведите Apache на внутренний порт: в /etc/apache2/ports.conf замените Listen 80 на Listen 127.0.0.1:8080. Затем блок сервера NGINX:
server {
listen 443 ssl;
server_name 1c.example.ru;
ssl_certificate /etc/letsencrypt/live/1c.example.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/1c.example.ru/privkey.pem;
client_max_body_size 200m;
location /buh/ {
proxy_pass http://127.0.0.1:8080/buh/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
}
client_max_body_size нужен для загрузки файлов в базу: по умолчанию NGINX режет тело запроса на 1 МБ. Большие proxy_read_timeout спасают длительные операции — закрытие месяца
или формирование тяжёлого отчёта, — которые иначе обрываются с ошибкой 504.
Публикация базы 1С на веб-сервере
Модуль сам по себе ничего не открывает. Нужна публикация: каталог с файлом default.vrd и блок в конфиге веб-сервера.
Через конфигуратор (Windows, IIS или Apache)
- Запустите конфигуратор от имени администратора — иначе он не сможет записать конфиг веб-сервера.
- Откройте базу и выберите
Администрирование → Публикация на веб-сервере. - Укажите имя публикации латиницей (например,
buh), тип веб-сервера и каталог. - Отметьте, что публиковать: веб-клиент, веб-сервисы, HTTP-сервисы, OData.
- Нажмите «Опубликовать» и согласитесь на перезапуск веб-сервера.
Через webinst (Linux и сценарии)
Утилита webinst лежит в том же каталоге, что и модули. Публикация серверной базы в Apache 2.4 на Ubuntu:
sudo mkdir -p /var/www/buh
cd /opt/1cv8/x86_64/8.3.24.1467
sudo ./webinst -publish -apache24 -wsdir buh -dir /var/www/buh \
-connstr "Srvr=srv1c;Ref=buh;" -confpath /etc/apache2/apache2.conf
sudo systemctl restart apache2
Для IIS в Windows вместо -apache24 указывают -iis и каталог вида C:\inetpub\wwwroot\buh. Для файловой базы строка подключения выглядит как File="D:\Bases\buh";.
В итоге в конфиге Apache появится такой блок — полезно знать его, чтобы чинить руками:
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.24.1467/wsap24.so"
Alias "/buh" "/var/www/buh/"
<Directory "/var/www/buh/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "/var/www/buh/default.vrd"
</Directory>
Строка LoadModule _1cws_module должна быть в конфиге одна. При публикации второй и третьей базы её не дублируют — добавляются только блоки Alias и Directory.
База будет доступна по адресу http://сервер/buh/.
Проверка конфигурации и разбор ошибок
Тест конфигурации Apache
Перед каждым перезапуском проверяйте синтаксис:
sudo apachectl configtest # Debian/Ubuntu: можно apache2ctl -t
sudo apachectl -M | grep 1cws # модуль загружен?
Ответ Syntax OK и строка _1cws_module (shared) во втором выводе — значит, модуль подключён. На Windows то же самое делает httpd.exe -t из каталога bin Apache.
Если модуль не грузится, проверьте зависимости библиотеки:
ldd /opt/1cv8/x86_64/8.3.24.1467/wsap24.so | grep "not found"
Тест конфигурации NGINX
sudo nginx -t
sudo systemctl reload nginx
reload, в отличие от restart, не обрывает текущие соединения. Для 1С это важно: у пользователей веб-клиента не слетят открытые сеансы.
Перезапуск Apache или IIS (restart, iisreset) завершает сеансы всех, кто сейчас работает в базе через браузер. Делайте это в нерабочее время или предупредите пользователей.
Частые симптомы
httpd.exe -t: он покажет строку с ошибкой.Логи ищите здесь: /var/log/apache2/error.log (Debian/Ubuntu), /var/log/httpd/error_log (RHEL), журнал событий Windows и каталог logs Apache — на Windows.
Как ускорить работу 1С через браузер
Основные тормоза веб-доступа — не сам модуль, а сеть, сжатие и схема работы базы.
| Мера | Что даёт | На что смотреть |
|---|---|---|
| Клиент-серверная база вместо файловой | Нет конкурентного доступа веб-сервера к файлу базы | Для 5+ пользователей обязательно |
| Веб-сервер рядом с сервером 1С | Меньше задержки между модулем и кластером | Одна площадка или одна локальная сеть |
| HTTPS и HTTP/2 на NGINX | Меньше рукопожатий, параллельные запросы | Сертификат продлевается автоматически |
| Сжатие и кеш статики | Быстрее первая загрузка веб-клиента | Не сжимайте повторно то, что уже сжато |
| Тонкий клиент по HTTP вместо браузера | Меньше нагрузка на браузер, привычный интерфейс | Тот же адрес публикации |
Ещё несколько практических приёмов:
- 🧹 Не публикуйте лишнего. Веб-сервисы, HTTP-сервисы и OData включайте только там, где ими реально пользуются.
- 🔁 После каждого обновления платформы обновляйте модуль и путь в
LoadModule. Старый модуль на новом кластере — гарантированная ошибка версий. - 📊 Если веб-клиент тормозит у всех сразу, сравните скорость тонкого клиента внутри сети. Медленно и там — проблема в базе или сервере 1С, а не в веб-сервере.