Публикация информационной базы 1С через IIS или Apache: от установки модулей до HTTPS
Содержание
Чтобы опубликовать базу 1С на веб-сервере, нужны три вещи: установленные «Модули расширения веб-сервера» из дистрибутива платформы, сам веб-сервер (IIS на Windows или Apache 2.4 на Windows и Linux) и команда публикации. Её запускают из Конфигуратора, открытого от имени администратора, через Администрирование → Публикация на веб-сервере, либо утилитой webinst из командной строки.
После публикации база открывается в браузере по адресу вида http://server/demo и в тонком клиенте по HTTP. Чаще всего публикация спотыкается не на самой команде, а на разрядности модуля, правах учётки веб-сервера и версии платформы. Эти три места разобраны подробно для IIS и Apache.
Подготовка: что установить до публикации веб-сервера 1С
Публикация работает одинаково для файловой и клиент-серверной базы. Разница только в строке соединения: File="C:\Bases\demo"; или Srvr="srv1c";Ref="demo";.
Что должно быть на машине с веб-сервером:
- 🧩 Платформа 1С той же версии, что у сервера 1С или файловой базы, с компонентом «Модули расширения веб-сервера». Если его не отметили при установке, запустите установщик ещё раз, выберите «Изменить» и добавьте компонент.
- 🧩 Разрядность совпадает. 64-битный модуль загружается только в 64-битный процесс веб-сервера, 32-битный — только в 32-битный. На этом ломается большинство первых публикаций.
- 🧩 Сам веб-сервер: роль IIS в Windows Server 2016 и новее или Apache 2.4. Для Apache на Windows берут сборку с Apache Lounge нужной разрядности.
- 🧩 Конфигуратор с правами администратора. Без них диалог публикации не сможет записать файлы в каталог сайта и изменить настройки IIS или
httpd.conf.
Для клиент-серверного варианта веб-сервер может стоять на отдельной машине. Тогда до сервера 1С должны быть открыты порты агента (1540), менеджера кластера (1541) и диапазон рабочих процессов, заданный в свойствах рабочего сервера (по умолчанию 1560–1591).
Один веб-сервер может обслуживать несколько баз. Каждая получает своё имя публикации (/buh, /zup) и свой каталог с файлом default.vrd.
Публикация базы 1С через Microsoft IIS
Шаг 1. Компоненты IIS
В «Диспетчере серверов» добавьте роль «Веб-сервер (IIS)». В службах ролей обязательно отметьте:
- «Разработка приложений» → Расширения ISAPI и Фильтры ISAPI.
- «Безопасность» → Обычная проверка подлинности и Проверка подлинности Windows, если планируете вход под доменной учёткой.
- «Средства управления» → Консоль управления IIS.
Без расширений ISAPI модуль 1С подключить нельзя: IIS вернёт 404.3 или 404.2.
Шаг 2. Публикация из Конфигуратора
- Запустите 1С от имени администратора, откройте базу в Конфигураторе.
- Меню
Администрирование → Публикация на веб-сервере. - В поле «Имя» задайте короткое латинское имя, например
buh. Оно станет частью адреса. - «Веб-сервер» — Internet Information Services. Каталог по умолчанию —
C:\inetpub\wwwroot\buh. - Отметьте нужное: веб-клиент, тонкий клиент, при необходимости веб-сервисы, HTTP-сервисы и стандартный интерфейс OData.
- Нажмите «Опубликовать». Конфигуратор создаст каталог,
default.vrdи обработчик в IIS.
Шаг 3. Пул приложений и права
Откройте «Диспетчер служб IIS» → «Пулы приложений» → пул сайта (обычно DefaultAppPool) → «Дополнительные параметры».
- Если установлена 32-битная платформа, включите «Разрешены 32-разрядные приложения» = True. Для 64-битной оставьте False.
- Для файловой базы выдайте группе
IIS_IUSRSи пользователюIUSRправа на изменение каталога базы. Иначе веб-клиент получит отказ в доступе к файлу1Cv8.1CD. - Права на чтение и выполнение нужны и на каталог
binплатформы, напримерC:\Program Files\1cv8\8.3.24.1467\bin.
После изменений перезапустите пул или выполните iisreset.
Шаг 4. Проверка
Откройте в браузере на самом сервере http://localhost/buh. Должно появиться окно входа 1С или сразу рабочий стол, если в базе нет пользователей.
Затем проверьте с рабочего места по имени сервера: http://srv-web/buh. Если локально открывается, а с другой машины нет, дело в межсетевом экране Windows. Разрешите входящие подключения на порт 80 (и 443 после включения HTTPS).
Публикация в IIS лежит в «Сайты → Default Web Site» как приложение с именем buh. Если её нужно перенести на другой сайт или порт, проще удалить публикацию и сделать заново, чем править обработчики вручную.
iisreset перезапускает все сайты на сервере. Пользователи веб-клиента потеряют сеанс и несохранённые данные. Делайте это вне рабочего времени или предупредите людей.
Настройка Apache для публикации 1С на Linux и Windows
Apache удобен тем, что одинаково ведёт себя на обеих ОС, а публикацию можно полностью сделать из командной строки.
Apache на Windows
- Распакуйте Apache 2.4 в
C:\Apache24, установите службу:httpd.exe -k installиз каталогаC:\Apache24\bin. - В Конфигураторе:
Администрирование → Публикация на веб-сервере, веб-сервер — Apache 2.4, укажите каталог, напримерC:\Apache24\htdocs\buh. - Перезапустите службу Apache2.4.
Конфигуратор сам допишет в httpd.conf строку загрузки модуля wsap24.dll и блок для публикации.
Apache на Linux через webinst
На Linux графического диалога для публикации обычно нет, поэтому используют webinst из каталога платформы:
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
Для файловой базы строка соединения — -connstr "File=/home/usr1cv8/bases/buh;". Пользователю, от которого работает Apache (www-data в Debian и Ubuntu), нужны права на каталог базы.
На Windows та же команда выглядит так:
"C:\Program Files\1cv8\8.3.24.1467\bin\webinst.exe" -publish -apache24 -wsdir buh -dir "C:\Apache24\htdocs\buh" -connstr "Srvr=srv1c;Ref=buh;" -confpath "C:\Apache24\conf\httpd.conf"
Ключ -iis вместо -apache24 публикует в IIS. Удалить публикацию — ключ -delete с тем же -wsdir.
Что появляется в httpd.conf
Полезно знать содержимое блока, чтобы поправить его руками или перенести на другой сервер:
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.24.1467/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С новой версии откажет в соединении.
Файл 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="/buh"
ib="Srvr="srv1c";Ref="buh";">
</point>
Кавычки внутри атрибута ib записываются как ". Опечатка здесь даёт ошибку соединения с базой, хотя сам Apache работает нормально.
Сравнение IIS и Apache для 1С
| Критерий | IIS | Apache 2.4 |
|---|---|---|
| ОС | только Windows | Windows и Linux |
| Публикация | Конфигуратор или webinst -iis | Конфигуратор или webinst -apache24 |
| Вход под учёткой Windows | встроенная проверка подлинности Windows | требует дополнительных модулей |
| HTTPS | привязка сертификата в консоли IIS | mod_ssl и правка конфигурации |
| Частая ловушка | разрядность пула приложений | старый путь в LoadModule после обновления |
Если сервер 1С на Windows и пользователи в домене, проще IIS. Если сервер 1С на Linux или нужен единый способ для нескольких площадок — Apache.
Безопасность публикации: HTTPS, доступ и сервер администрирования RAS
Опубликованная база доступна всем, кто дошёл до адреса. Поэтому до выхода в интернет закройте минимум три вопроса.
HTTPS
- IIS: «Диспетчер служб IIS» → сайт → «Привязки» → добавить тип https, порт 443, выбрать сертификат. Сертификат заранее импортируют в хранилище компьютера.
- Apache: включите
mod_ssl, в виртуальном хосте на 443 порту пропишитеSSLCertificateFileиSSLCertificateKeyFile. На Linux бесплатный сертификат Let’s Encrypt ставится через certbot.
После включения HTTPS перенаправьте HTTP на HTTPS. Пароли пользователей 1С по открытому HTTP передаются без шифрования.
Доступ к базе
- 🔒 У всех пользователей базы должны быть пароли. Пользователь без пароля в опубликованной базе — открытая дверь.
- 🔒 Публикуйте только нужное. Не отмечайте веб-сервисы и OData, если ими никто не пользуется.
- 🔒 Ограничьте доступ по IP на уровне веб-сервера или межсетевого экрана, если база нужна только филиалам.
- 🔒 Для внешнего доступа надёжнее VPN, а публикацию оставить во внутренней сети.
Где здесь RAS
В 1С сокращение RAS означает сервер администрирования кластера, а не удалённый доступ Windows. Он нужен, чтобы управлять кластером без консоли на самом сервере: смотреть сеансы, лицензии, рабочие процессы. К самой публикации он не относится, но администраторам веб-доступа обычно нужен.
Запуск и проверка на сервере 1С:
ras cluster --daemon
rac cluster list
rac session list --cluster=<id кластера> --licenses
По умолчанию RAS слушает порт 1545. Не открывайте порты 1540, 1541, 1545 в интернет — управление кластером должно быть доступно только изнутри сети. Для остальных команд смотрите rac help.
Типовые ошибки публикации и что с ними делать
Если ошибка не похожа ни на одну из этих, загляните в журналы. В IIS — C:\inetpub\logs\LogFiles и журнал событий Windows. В Apache — error.log в каталоге logs или /var/log/apache2/. Код ответа и подстатус (например, 500.0 или 404.3) почти всегда подсказывают, на каком уровне проблема.
Как ускорить работу веб-клиента 1С
Веб-клиент чувствителен к задержкам сети сильнее, чем к мощности сервера. Каждое открытие формы — это несколько запросов к веб-серверу и серверу 1С.
- ⚡ Ставьте веб-сервер рядом с сервером 1С. Одна машина или одна быстрая сеть. Задержка между ними умножается на каждый серверный вызов.
- ⚡ Включите сжатие ответов. В IIS — динамическое сжатие в службах ролей. В Apache —
mod_deflate. Трафик форм сжимается хорошо. - ⚡ Тонкий клиент вместо браузера для постоянной работы. Он подключается к той же публикации строкой
ws=http://server/buh, но работает быстрее и не зависит от особенностей браузера. - ⚡ Актуальный браузер. Веб-клиент поддерживает Chrome, Edge, Firefox и Safari; старые версии работают медленнее и с ошибками.
- ⚡ Следите за памятью рабочих процессов в консоли кластера или через
rac. Тормоза веб-клиента часто оказываются тормозами сервера 1С, а не веб-сервера.
Чтобы отличить проблему веб-сервера от проблемы базы, откройте ту же базу тонким клиентом напрямую по Srvr=…. Если и там медленно, веб-сервер ни при чём.