Веб-сервер в инфраструктуре 1С:Предприятия: какие задачи он закрывает и какой выбрать
Содержание
Веб-сервер нужен 1С для всего, что ходит в базу по протоколу HTTP: работа через браузер (веб-клиент), тонкий клиент через интернет без VPN, мобильный клиент и мобильные приложения, а также интеграции через HTTP-сервисы, веб-сервисы SOAP и OData. Если пользователи сидят только в локальной сети в толстом или тонком клиенте, а обменов с внешними системами нет, веб-сервер не нужен вовсе.
Выбор простой. На Windows чаще всего ставят IIS, на Linux — Apache 2.4. Apache работает и на Windows, его берут, когда нужна одна схема настройки для всех серверов. Третий вариант — автономный сервер ibsrv из состава платформы: он сам отдаёт базу по HTTP без внешнего веб-сервера и подходит для небольших и тестовых установок.
Что делает веб-сервер в связке с 1С
Сам по себе IIS или Apache про 1С ничего не знает. Работу делает модуль расширения веб-сервера — библиотека из комплекта платформы. Веб-сервер принимает HTTP-запрос и передаёт его модулю, а модуль уже подключается к базе: к каталогу файловой базы или к кластеру серверов 1С.
Цепочка выглядит так:
- Браузер, тонкий клиент или внешняя система отправляет запрос на адрес вида
https://srv.company.ru/buh. - Веб-сервер по пути
/buhнаходит публикацию и передаёт запрос модулю расширения. - Модуль читает файл публикации
default.vrd: в нём строка соединения с базой и список того, что опубликовано. - Модуль работает с базой как обычный клиент 1С и возвращает ответ.
Какие библиотеки за что отвечают:
| Веб-сервер | Модуль расширения | Где лежит |
|---|---|---|
| IIS (Windows) | wsisapi.dll | каталог bin версии платформы |
| Apache 2.4 (Windows) | wsap24.dll | каталог bin версии платформы |
| Apache 2.4 (Linux) | wsap24.so | /opt/1cv8/x86_64/<версия>/ |
| Apache 2.2 | wsap22.dll / wsap22.so | устаревшая ветка, для новых установок не берут |
Модуль ставится вместе с платформой, если в установщике отмечен компонент «Модули расширения веб-сервера». Его версия должна совпадать с версией сервера 1С, иначе соединение с кластером не установится.
Основные задачи веб-сервера для 1С
- 🌐 Веб-клиент — работа в базе из браузера без установки платформы на компьютер.
- 💻 Тонкий клиент по HTTP — привычное окно 1С, но соединение идёт через веб-сервер, а не напрямую к кластеру по портам 1540–1541.
- 📱 Мобильный клиент — работа с опубликованной базой с телефона или планшета.
- 🔗 HTTP-сервисы — REST-подобные интерфейсы для сайтов, маркетплейсов, складских систем.
- 📄 Веб-сервисы SOAP — классическая интеграция с описанием WSDL.
- 📊 OData — стандартный интерфейс для чтения и записи данных базы без доработки конфигурации.
Удалённая работа и мобильные устройства через веб-сервер
Главная причина, по которой малый бизнес публикует базу, — удалённый доступ. Бухгалтер работает из дома, менеджер с ноутбука в командировке. Без веб-сервера остаются два пути: VPN или терминальный сервер . Публикация проще: открыт один порт 443, всё остальное закрыто.
Веб-клиент или тонкий клиент по HTTP
| Вариант | Что нужно на компьютере | Когда выбирать |
|---|---|---|
| Веб-клиент | Только браузер | Редкая работа, чужие компьютеры, macOS без платформы |
| Тонкий клиент по HTTP | Установленный тонкий клиент той же версии | Ежедневная работа: быстрее, удобнее печать и работа с файлами |
Чтобы тонкий клиент ходил через веб-сервер, в списке баз добавляют базу с типом расположения «На веб-сервере» и указывают адрес публикации. В строке соединения это выглядит как ws="https://srv.company.ru/buh";.
Веб-клиент тоже занимает клиентскую лицензию, как и обычный тонкий клиент. Публикация не даёт «бесплатных» пользователей: считайте сеансы так же, как при работе в локальной сети.
Мобильный клиент и мобильные приложения
Здесь два разных сценария, их часто путают:
- 📱 Мобильный клиент — по сути тонкий клиент для телефона. Он работает с той же опубликованной базой, что и браузер. Без публикации на веб-сервере не запустится.
- 📲 Мобильное приложение на мобильной платформе — отдельная небольшая база на телефоне. С центральной базой оно обменивается через веб-сервисы или HTTP-сервисы, которые тоже публикуются на веб-сервере.
В обоих случаях адрес должен быть доступен из интернета, и почти всегда по HTTPS: современные мобильные системы неохотно работают с открытым HTTP.
IIS, Apache или автономный сервер: какой веб-сервер выбрать для 1С
Все три варианта рабочие. Разница в платформе, удобстве настройки и масштабе.
| Критерий | IIS | Apache 2.4 | Автономный сервер ibsrv |
|---|---|---|---|
| ОС | Только Windows | Windows и Linux | Windows и Linux |
| Установка | Роль Windows Server, ставится из «Диспетчера серверов» | Отдельный дистрибутив или пакет apache2 | Входит в платформу |
| Публикация из Конфигуратора | Да | Да | Нет, свой порядок запуска |
| Настройка | Графическая оснастка | Текстовый httpd.conf / файлы сайта | Параметры командной строки и файл конфигурации |
| Сертификаты | Привязка к сайту в оснастке | mod_ssl | Ставят прокси перед ним |
| Для чего | Офис на Windows Server | Linux-серверы, одинаковая схема на всех площадках | Тесты, разработка, небольшие базы |
Когда брать IIS
IIS удобен, если сервер 1С и так стоит на Windows Server 2016 и новее. Роль «Веб-сервер (IIS)» добавляют через «Диспетчер серверов». При установке отмечают компоненты «Расширения ISAPI» и «Фильтры ISAPI» — без них модуль wsisapi.dll не подключится.
Разрядность модуля должна совпадать с разрядностью пула приложений. Если стоит 32-разрядная платформа, в дополнительных параметрах пула приложений включают «Разрешить 32-разрядные приложения». Для 64-разрядной платформы этот параметр выключен.
Когда брать Apache
Apache — стандарт для Linux. На Windows его выбирают, когда IIS запрещён политикой или когда администратору проще править текстовый конфиг. Публикация добавляет в httpd.conf блок такого вида:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.24.1467/bin/wsap24.dll"
# 1c publication
Alias "/buh" "C:/inetpub/wwwroot/buh/"
<Directory "C:/inetpub/wwwroot/buh/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "C:/inetpub/wwwroot/buh/default.vrd"
</Directory>
Номер версии в пути к модулю подставьте свой. После обновления платформы путь в строке LoadModule нужно поменять на новую версию — частая причина того, что после обновления «вдруг сломался» веб-клиент.
Nginx и автономный сервер
Модуля для Nginx в платформе нет. Nginx ставят перед Apache или перед ibsrv как обратный прокси: он принимает HTTPS, держит сертификат и передаёт запросы дальше.
Автономный сервер ibsrv работает без кластера и без внешнего веб-сервера. Для рабочей базы на 20 пользователей обычно всё же выбирают классическую схему «сервер 1С + IIS или Apache»: её проще администрировать и масштабировать. Параметры запуска ibsrv смотрите в справке ibsrv --help для своей версии платформы.
Публикация базы и интеграция через HTTP-сервисы
Опубликовать базу можно двумя способами.
Из Конфигуратора. Запустите Конфигуратор от имени администратора Windows (иначе не хватит прав на запись в каталог веб-сервера), откройте Администрирование → Публикация на веб-сервере. Укажите имя публикации, веб-сервер, каталог и отметьте, что публиковать.
Утилитой webinst. Она лежит в каталоге bin платформы и удобна для скриптов и серверов без графической оболочки:
webinst -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=srv1c;Ref=buh;"
Для Apache вместо -iis указывают -apache24 и путь к конфигу ключом -confpath. Удаление публикации — тот же вызов с ключом -delete.
Какие флажки ставить при публикации
| Флажок | Что даёт | Когда отключать |
|---|---|---|
| Публиковать тонкий клиент и веб-клиент | Вход пользователей через браузер и тонкий клиент по HTTP | Публикация только для обменов |
| Публиковать веб-сервисы | SOAP-сервисы конфигурации | Если внешние системы их не используют |
| Публиковать HTTP-сервисы | REST-интерфейсы конфигурации и расширений | Если нет интеграций |
| Публиковать стандартный интерфейс OData | Доступ к данным по OData | Если не пользуетесь — держите выключенным |
Адреса для интеграции
После публикации внешние системы обращаются по стандартным путям:
https://srv.company.ru/buh/hs/<корневой URL сервиса>/<шаблон>— HTTP-сервисы;https://srv.company.ru/buh/ws/<имя сервиса>?wsdl— описание веб-сервиса SOAP;https://srv.company.ru/buh/odata/standard.odata/— стандартный интерфейс OData.
Корневой URL HTTP-сервиса задаётся в его свойствах в Конфигураторе. Если сервис добавлен расширением, его тоже нужно отметить в публикации, иначе запрос вернёт 404.
Для OData мало включить флажок в публикации. В базе ещё задают состав интерфейса: какие справочники, документы и регистры отдавать наружу. Пока состав пустой, OData отвечает, но данных нет.
Безопасность публикации и SSL-сертификат
Опубликованная база доступна всем, кто знает адрес. Поэтому настройку безопасности делают сразу, а не «потом».
Минимальный набор мер
- 🔒 Только HTTPS. При обычной аутентификации логин и пароль 1С идут в каждом запросе. По открытому HTTP их видно на любом промежуточном узле.
- 👤 Без пользователя в строке соединения. Не записывайте
Usr=иPwd=в публикацию. Иначе любой, кто откроет адрес, попадёт в базу под этим пользователем. - 🔑 Пароли у всех пользователей 1С. Пользователь без пароля в опубликованной базе — открытая дверь.
- 🚪 Отдельная публикация под обмены. Для HTTP-сервисов делайте отдельную публикацию без веб-клиента и с отдельным пользователем, у которого роль только на нужные операции.
- 🧱 Закрытые порты кластера. Наружу открыт только 443. Порты 1540, 1541 и диапазон рабочих процессов в интернет не выставляют.
Сертификат на IIS
- Получите сертификат: купленный у удостоверяющего центра или бесплатный Let’s Encrypt через утилиту автоматического выпуска для Windows.
- В «Диспетчере служб IIS» выберите сайт, откройте «Привязки» и добавьте привязку
httpsна порт 443 с этим сертификатом. - Проверьте, что адрес открывается без предупреждений браузера, и только потом раздавайте его пользователям.
Сертификат на Apache
В Apache подключают модуль mod_ssl и в описании сайта на порту 443 указывают SSLCertificateFile и SSLCertificateKeyFile. На Linux удобнее всего certbot: он сам продлевает сертификат Let’s Encrypt раз в 60–90 дней.
Самоподписанный сертификат подходит для теста. Мобильный клиент и многие внешние системы откажутся с ним работать или потребуют вручную добавить его в доверенные.
Ошибки публикации и их диагностика
Большинство проблем при публикации — это права, разрядность и версии. Начинайте проверку с журнала веб-сервера: в IIS это журналы сайта и «Просмотр событий» Windows, в Apache — файл error.log.
Если не помогло
- Создайте пустую тестовую базу и опубликуйте её с тем же веб-сервером. Открылась — проблема в правах или настройках рабочей базы. Не открылась — в веб-сервере или модуле.
- Удалите публикацию через Конфигуратор или
webinst -deleteи создайте заново: так исправляются «битые»default.vrdи обработчики в IIS. - Проверьте, что в IIS у публикации есть обработчик для модуля 1С и что ISAPI-расширение разрешено в «Ограничениях ISAPI и CGI».
Перезапуск IIS командой iisreset или перезапуск службы Apache обрывает все сеансы, открытые через веб-клиент и мобильный клиент. Несохранённые данные пользователей пропадут. Делайте это вне рабочего времени или предупредите пользователей заранее.
Частые вопросы
Можно ли поставить веб-сервер на другой компьютер, а не на сервер 1С?
Подойдёт ли веб-сервер для файловой базы?
Нужна ли отдельная лицензия на веб-сервер?
Сколько пользователей выдержит одна публикация?
Можно ли опубликовать несколько баз на одном веб-сервере?
/buh, /zup, /ut. У каждой публикации свой default.vrd и свой набор флажков.