Публикация базы 1С:Предприятия через IIS и Apache — от подготовки сервера до проверки

· 9 мин

Содержание

Чтобы разместить 1С на веб-сервере, нужно три вещи: установленный веб-сервер (IIS на Windows или Apache 2.4 на Linux и Windows), модули расширения веб-сервера из дистрибутива платформы той же версии, что и база, и публикация базы — через Конфигуратор (Администрирование → Публикация на веб-сервере) или утилиту webinst. После этого база открывается в браузере по адресу вида http://server/buh/, а тонкий клиент подключается к ней по HTTP.

Выбор простой. Сервер на Windows — берите IIS, он уже есть в системе. Сервер на Linux — Apache 2.4. Nginx платформа напрямую не поддерживает: его ставят перед Apache или IIS как обратный прокси, чтобы раздавать HTTPS и закрывать лишнее.

Какой веб-сервер выбрать для размещения 1С

Платформа 1С:Предприятие 8.3 работает с двумя веб-серверами через свои модули: ISAPI-расширение для IIS и модуль для Apache. Всё остальное — только как надстройка.

ВариантГде работаетМодуль 1СКогда выбирать
IISWindows Server 2016 и новееwsisapi.dllСервер 1С и так на Windows, администратор знаком с IIS
Apache 2.4Linux, Windowswsap24.so (Linux), wsap24.dll (Windows)Сервер на Linux, нужна прозрачная текстовая конфигурация
Nginx + Apache/IISЛюбая ОСМодуль 1С ставится в Apache/IISПубликация в интернет: TLS, ограничение доступа, несколько сайтов на одном IP

Опубликовать можно и файловую, и клиент-серверную базу . Для пяти-десяти пользователей файловая база через веб-сервер работает приемлемо. Для большего числа и для доступа из интернета логичнее клиент-серверный вариант: сервер 1С плюс СУБД (PostgreSQL или MS SQL).

Подготовка сервера перед публикацией 1С

Сам веб-сервер нагружен слабо: основную работу делают рабочие процессы сервера 1С. Ориентиры для небольшой компании:

  • 🖥️ процессор — от 4 ядер на машину, где стоят и сервер 1С, и веб-сервер;
  • 💾 память — примерно от 8 ГБ для 10–20 пользователей, плюс память под СУБД, если она на той же машине;
  • 💿 диск — SSD под базы и временные файлы кластера;
  • 🌐 сеть — статический IP или доменное имя, если доступ нужен снаружи.

Порты, которые нужно учесть в брандмауэре:

ПортКто слушаетОткрывать наружу?
80 / 443Веб-серверДа, только 443 при доступе из интернета
1540Агент сервера 1СНет, только внутри сети
1541Менеджер кластераНет
1560–1591Рабочие процессы (диапазон задаётся в свойствах рабочего сервера)Нет

Веб-сервер и сервер 1С можно разнести на разные машины. Тогда между ними должны быть открыты 1540, 1541 и диапазон рабочих процессов.

Готовность сервера к публикации
Выполнено: 0 / 6

Установка платформы 1С и модулей расширения веб-сервера

Главное правило: версия модулей на веб-сервере должна совпадать с версией сервера 1С до последней цифры. Иначе клиент получит ошибку о несоответствии версий.

Windows

  1. Запустите setup.exe из дистрибутива технологической платформы.
  2. В списке компонентов включите Модули расширения веб-сервера. Если на этой же машине нужен Конфигуратор для публикации — оставьте и «1С:Предприятие».
  3. Для 64-битного IIS ставьте 64-битный дистрибутив. Модули 32-битной платформы потребуют включить 32-битные приложения в пуле IIS.
  4. После установки проверьте папку C:\Program Files\1cv8\8.3.xx.xxxx\bin\ — в ней должен лежать wsisapi.dll.

Linux

Модули веб-сервера идут отдельным пакетом с суффиксом -ws в имени. В новых дистрибутивах платформа ставится единым установщиком, где компонент выбирается галочкой. После установки файлы окажутся в каталоге /opt/1cv8/x86_64/8.3.xx.xxxx/, там же лежат wsap24.so и утилита webinst.

Сервер 1С для клиент-серверной базы

Если база файловая, этот шаг пропускается. Для клиент-серверного варианта:

  1. Установите компонент «Сервер 1С:Предприятия» той же версии. На Windows установщик предложит запустить сервер как службу — соглашайтесь и задайте отдельного пользователя службы.
  2. Убедитесь, что служба запущена и слушает 1540: netstat -an | findstr 1540 на Windows или ss -tlnp | grep 1540 на Linux.
  3. В консоли кластера (или через rac cluster list) проверьте, что кластер виден.
  4. Создайте или загрузите информационную базу в кластер. Запомните имя базы в кластере — оно понадобится для строки подключения.

Строка подключения для публикации будет выглядеть так: Srvr="srv1c";Ref="buh";. Для файловой базы: File="D:\Bases\Buh";.

Настройка IIS или Apache под 1С

IIS на Windows Server

  1. Откройте Диспетчер серверов → Управление → Добавить роли и компоненты.
  2. Отметьте роль Веб-сервер (IIS). В службах роли раскройте Разработка приложений и включите Расширения ISAPI и Фильтры ISAPI.
  3. Оставьте средства управления: Консоль управления IIS.
  4. Дайте права на чтение и выполнение группе IIS_IUSRS на папку bin платформы. Для файловой базы этой же группе нужны права на изменение каталога базы.

Если публикуете модули 32-битной платформы, в дополнительных параметрах пула приложений установите «Разрешены 32-разрядные приложения» = True.

Apache 2.4 на Linux

На Debian и Ubuntu: sudo apt install apache2. Публикацию удобнее сделать утилитой webinst — она сама допишет нужные строки в конфиг. Для понимания, что именно появится в apache2.conf:

LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.xx.xxxx/wsap24.so"

# 1c publication
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 меняется вместе с номером версии. Поправьте его вручную или перепубликуйте базу, затем перезапустите Apache.

Публикация базы 1С на веб-сервере

Через Конфигуратор (Windows + IIS)

  1. Запустите 1С от имени администратора Windows. Без этого пункт публикации будет недоступен или упадёт с ошибкой прав.
  2. Откройте базу в режиме Конфигуратора.
  3. Выберите Администрирование → Публикация на веб-сервере.
  4. Заполните поля:
    • Имя — латиницей, без пробелов: оно станет частью адреса (buh);
    • Веб-сервер — Internet Information Services;
    • Каталог — например, C:\inetpub\wwwroot\buh.
  5. Оставьте флажки публикации тонкого клиента и веб-клиента. Веб-сервисы, HTTP-сервисы и OData включайте только те, что реально используются.
  6. Нажмите Опубликовать. Платформа создаст каталог с файлом default.vrd и приложение в IIS.

Через webinst (Linux + Apache)

sudo mkdir -p /var/www/buh
sudo /opt/1cv8/x86_64/8.3.xx.xxxx/webinst -publish -apache24 \
  -wsdir buh -dir /var/www/buh \
  -connstr "Srvr=srv1c;Ref=buh;" \
  -confpath /etc/apache2/apache2.conf
sudo systemctl restart apache2

Ключевой файл публикации — default.vrd. В нём хранится строка подключения к базе и список опубликованных сервисов. При переносе публикации на другой сервер достаточно поправить в нём адрес сервера 1С.

Несколько баз на одном веб-сервере — это несколько публикаций с разными именами: /buh, /zup, /ut. Каждая получает свой каталог и свой default.vrd.

Безопасность и Nginx перед веб-сервером 1С

Публикация «как есть» по HTTP подходит только для локальной сети. Перед выходом в интернет:

  • 🔒 HTTPS обязателен. Логин и пароль пользователя иначе идут открытым текстом. Бесплатный сертификат Let’s Encrypt подходит.
  • 👤 У каждого пользователя базы — пароль. Пустой пароль у пользователя с полными правами в опубликованной базе — открытая дверь.
  • 🚪 Наружу только 443. Порты кластера 1540–1591 и порт RDP из интернета закрыты.
  • 🧹 Лишние сервисы не публикуйте. Отключённые веб- и HTTP-сервисы в default.vrd — меньше поверхность атаки.
  • 🛡️ Ограничение по IP или VPN для доступа из филиалов — надёжнее любого пароля.

Типовая схема для интернета: Nginx принимает HTTPS на 443 и передаёт запросы на Apache, который слушает только 127.0.0.1:8080.

server {
    listen 443 ssl http2;
    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;   # загрузка файлов и вложений
    proxy_read_timeout   600s;   # долгие отчёты и обработки

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Сертификат на Debian и Ubuntu выпускается и продлевается пакетом certbot:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d 1c.example.ru

Доменное имя должно уже указывать на IP сервера, а порт 80 — быть открыт на время проверки. Продление certbot настраивает сам, через системный таймер.

На Windows с IIS сертификат привязывается к сайту в консоли IIS: в разделе привязок сайта добавьте тип https, порт 443 и выберите установленный сертификат. Для бесплатных сертификатов под IIS есть сторонние утилиты-клиенты ACME.

Без увеличенного proxy_read_timeout длинная выгрузка или закрытие месяца в веб-клиенте оборвётся через 60 секунд со стороны прокси, хотя на сервере 1С операция продолжится.

Проверка работы и наблюдение за публикацией

Проверяйте в таком порядке, от простого к сложному:

  1. Браузер на самом сервере: http://localhost/buh/. Должна появиться форма входа 1С.
  2. Браузер с другого компьютера сети: http://server/buh/. Не открывается — смотрите брандмауэр.
  3. Тонкий клиент: в списке баз нажмите «Добавить», выберите вариант подключения через веб-сервер и укажите адрес https://1c.example.ru/buh.
  4. Нагрузка: попросите 3–5 пользователей поработать одновременно и сформировать тяжёлый отчёт.

Где смотреть, если что-то не так:

ЧтоГде лежит
Журнал IISC:\inetpub\logs\LogFiles\
Ошибки Apache/var/log/apache2/error.log
Активные сеансы базыКонсоль кластера или rac session list
Технологический журнал 1СВключается файлом logcfg.xml в каталоге conf платформы

Сеансы веб-клиента и тонкого клиента через веб-сервер занимают клиентские лицензии так же, как обычные подключения. Если пользователь закрыл вкладку браузера, не выйдя из базы, сеанс какое-то время остаётся висеть и держит лицензию — это видно в списке сеансов.

Ошибки при размещении 1С на веб-сервере

Диагностика: выберите симптом

Перезапуск IIS (iisreset) или Apache обрывает все сеансы, открытые через веб-сервер: несохранённые документы у пользователей пропадут. Делайте это вне рабочего времени или после предупреждения.

Частые вопросы о размещении 1С на веб-сервере

Можно ли опубликовать файловую базу без сервера 1С?
Да. В строке подключения указывается путь к каталогу базы, а пользователю веб-сервера выдаются права на изменение этого каталога. Подходит для небольшого числа пользователей.
Нужны ли отдельные лицензии на веб-сервер?
Отдельной лицензии на сам веб-сервер нет. Каждый сеанс через веб-клиент или тонкий клиент по HTTP занимает клиентскую лицензию, как и обычное подключение.
Можно ли поставить Apache на Windows вместо IIS?
Можно, платформа поставляет модуль для Apache 2.4 и под Windows. Выбор обычно определяется тем, с чем знаком администратор.
Работает ли веб-клиент в любом браузере?
Поддерживаются актуальные версии распространённых браузеров: Chrome, Firefox, Edge, Safari, Яндекс Браузер. Устаревшие версии могут не открыть базу.
Что делать с публикацией после обновления платформы?
Установить модули расширения веб-сервера новой версии и перепубликовать базу, чтобы в настройках веб-сервера оказался путь к новым модулям.