Снимаем базу 1С с публикации и гасим Apache или IIS без последствий

· 9 мин

Содержание

Чтобы отключить веб-сервер 1С, чаще всего достаточно снять базу с публикации: Конфигуратор → Администрирование → Публикация на веб-сервере → кнопка отключения публикации. Если веб-сервер больше не нужен совсем, остановите службу Apache (Apache2.4) или IIS (W3SVC) и переведите её тип запуска в «Отключена». Порты 80 и 443 после этого закройте в брандмауэре.

Частое заблуждение — искать «веб-сервер» среди служб 1С. Своего веб-сервера у 1С:Предприятия нет: платформа ставит модуль расширения (wsap24.dll или wsisapi.dll) в чужой веб-сервер — Apache или IIS. Служба «Агент сервера 1С:Предприятия 8.3» — это сервер приложений, а не веб-сервер. Остановите её — и база перестанет открываться у всех, включая тех, кто работает через обычный клиент.

Что проверить до отключения веб-сервера 1С

Сначала выясните, кто пользуется публикацией. Через веб-сервер к 1С подключаются не только люди в браузере:

  • 🌐 Веб-клиент — пользователи, открывающие базу по ссылке вида http://server/base.
  • 📱 Мобильные приложения и тонкий клиент по HTTP — подключение через адрес, а не через сервер 1С.
  • 🔗 Веб-сервисы и HTTP-сервисы — обмены с сайтом, интернет-магазином, сторонними программами.
  • 📊 OData — выгрузка данных в BI-системы и внешние отчёты.

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

Какие порты слушает веб-сервер

По умолчанию Apache и IIS слушают порт 80, при HTTPS — ещё 443. Админы часто переносят публикацию 1С на нестандартный порт, например 8080 или 8081. Откройте командную строку от администратора и посмотрите, кто что слушает:

netstat -ano | findstr LISTENING | findstr ":80 :443 :8080"
tasklist /FI "PID eq 4512"

В первой команде ищите номер процесса (последний столбец). Вторая подставляет этот номер и показывает имя: httpd.exe — это Apache, System с PID 4 на порту 80 — обычно IIS через драйвер HTTP.sys.

В PowerShell то же самое короче:

Get-NetTCPConnection -State Listen -LocalPort 80,443 | Select LocalPort, OwningProcess

На Linux:

ss -tlnp | grep -E ':(80|443|8080) '

Где лежит конфигурация публикации

Веб-серверЧто искатьГде обычно лежит
Apache (Windows)строка LoadModule _1cws_module и блок <Location /имя_базы>C:\Apache24\conf\httpd.conf
Apache (Linux)то же, модуль wsap24.so/etc/apache2/apache2.conf или /etc/httpd/conf/httpd.conf
IISсайт или приложение с именем базы в «Диспетчере служб IIS»каталог публикации с файлом default.vrd

Файл default.vrd в каталоге публикации — паспорт базы для веб-сервера. В нём строка подключения и признаки, какие сервисы опубликованы. Скопируйте его вместе с фрагментом httpd.conf в отдельную папку: если отключение придётся откатить, восстановите всё за пять минут.

Что именно вам нужно отключить?

Отмена публикации базы в Конфигураторе

Это самый мягкий способ. Веб-сервер продолжает работать, но конкретная база из него исчезает.

  1. Запустите Конфигуратор от имени администратора. Без прав администратора Windows платформа не сможет изменить httpd.conf или настройки IIS.
  2. Откройте Администрирование → Публикация на веб-сервере.
  3. В поле «Веб-сервер» выберите тот, на котором опубликована база.
  4. Проверьте имя публикации и каталог — они должны совпадать с тем, что вы нашли в конфигурации.
  5. Нажмите кнопку отключения публикации внизу окна (рядом с «Опубликовать»).
  6. Подтвердите перезапуск веб-сервера, когда платформа предложит.

Каталог публикации с default.vrd после отмены иногда остаётся на диске. Он безвреден, но удаляйте его вручную только после проверки, что база действительно пропала из конфигурации веб-сервера.

Частичное отключение: только веб-клиент или только сервисы

В том же окне публикации есть флажки и вкладки для веб-сервисов, HTTP-сервисов и OData. Если обмен с сайтом должен жить, а сотрудникам из браузера база больше не нужна:

  • снимите флажок публикации доступа для клиентских приложений;
  • на вкладках сервисов оставьте отмеченными только используемые;
  • нажмите «Опубликовать» — платформа перезапишет default.vrd.

Так вы закроете веб-клиент, не ломая интеграции.

Остановка службы Apache или IIS в оснастке «Службы»

Если веб-сервер на машине держали только ради 1С, его можно остановить целиком.

  1. Нажмите Win+R, введите services.msc.
  2. Найдите службу:
    • Apache — обычно Apache2.4 (имя задаётся при установке, бывает Apache24 или своё);
    • IIS — «Служба веб-публикаций» (W3SVC).
  3. Откройте свойства двойным щелчком, нажмите «Остановить».
  4. В поле «Тип запуска» выберите «Отключена» и нажмите «Применить».

Без шага 4 служба поднимется после ближайшей перезагрузки сервера. Это самая частая причина, по которой «отключённый» веб-сервер через неделю снова отвечает на запросы.

На одном сервере с IIS часто живут другие сайты: личный кабинет, сервисы терминального доступа, служебные порталы. Перед остановкой W3SVC откройте «Диспетчер служб IIS» и посмотрите список сайтов. Если там не только 1С — снимайте публикацию, а службу не трогайте.

Блокировка доступа к базе через консоль кластера

Консоль администрирования серверов 1С не управляет Apache и IIS. Но она умеет закрыть саму базу — для всех, включая веб-клиент. Это удобно, когда доступ нужно перекрыть на время, без переделки публикаций.

  1. Откройте «Администрирование серверов 1С Предприятия».
  2. Разверните Центральные серверы → имя сервера → Кластеры → кластер → Информационные базы.
  3. Откройте свойства нужной базы (может потребоваться логин и пароль администратора базы).
  4. Включите «Блокировка начала сеансов включена», задайте время начала и окончания и сообщение для пользователей.
  5. При необходимости включите и «Блокировка регламентных заданий включена».

Пользователь веб-клиента увидит ваше сообщение вместо входа в базу. Блокировка не обрывает уже открытые сеансы: их завершают вручную в ветке «Сеансы» той же консоли.

Что ещё видно в консоли

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

Отключение веб-сервера 1С из командной строки

Командная строка нужна, когда Конфигуратор не запускается, баз много или отключение надо повторить на нескольких серверах.

Утилита webinst

Утилита webinst.exe лежит в каталоге bin установленной платформы, например C:\Program Files\1cv8\8.3.x.x\bin. Ключ -delete снимает публикацию:

cd "C:\Program Files\1cv8\8.3.24.1691\bin"
webinst -delete -apache24 -wsdir buh -dir "C:\inetpub\wwwroot\buh" -confPath "C:\Apache24\conf\httpd.conf"

Для IIS вместо -apache24 указывают -iis, а -confPath не нужен. Номер версии в пути замените на свой.

Управление службами

Windows, Apache:

net stop Apache2.4
sc config Apache2.4 start= disabled

Windows, IIS:

iisreset /stop
sc config W3SVC start= disabled

В команде sc config пробел после start= обязателен — без него команда выдаст ошибку синтаксиса.

Linux:

sudo systemctl stop apache2      # в RHEL-подобных системах: httpd
sudo systemctl disable apache2

Убрать модуль 1С, но оставить Apache

Если Apache обслуживает ещё и сайт, отключите только модуль 1С. В httpd.conf закомментируйте строку с LoadModule _1cws_module и все блоки <Location> публикаций 1С. Затем проверьте синтаксис и перезапустите:

C:\Apache24\bin\httpd.exe -t
net stop Apache2.4 && net start Apache2.4

Команда httpd -t должна ответить Syntax OK. Если забыть про блоки <Location>, Apache не стартует: без модуля он не знает директиву ManagedApplicationDescriptor.

Автономный сервер ibsrv

С версии 8.3.14 у платформы есть автономный сервер ibsrv — он сам принимает HTTP-подключения, без Apache и IIS. По умолчанию он слушает порт 8314. Если netstat показал этот порт и процесс ibsrv.exe, отключать нужно его: завершите процесс или остановите службу, через которую его запустили.

Закрываем порты брандмауэром

Остановленная служба — уже защита. Но правило брандмауэра страхует от случая, когда кто-то через полгода запустит Apache «на минутку» и забудет.

Windows, PowerShell от администратора:

New-NetFirewallRule -DisplayName "Block 1C web" -Direction Inbound -Protocol TCP -LocalPort 80,443,8080 -Action Block

То же через netsh:

netsh advfirewall firewall add rule name="Block 1C web" dir=in action=block protocol=TCP localport=80,443,8080

Linux с ufw:

sudo ufw deny 80/tcp
sudo ufw deny 443/tcp

Не закрывайте порты 1540, 1541 и диапазон 1560–1591. Это порты сервера 1С, через них работают обычные клиенты. Закроете их — остановится вся работа, а не только веб-доступ.

СпособКогда подходитЧто затронет
Отмена публикацииодна база больше не нужна в вебетолько эта база
Снятие флажков в публикациизакрыть браузер, оставить сервисывеб-клиент этой базы
Блокировка в консоли кластеравременно, на обновлениевсе подключения к базе
Остановка службывеб-сервер не нужен вообщевсе базы и сайты на сервере
Правило брандмауэрадополнительная страховкавесь трафик на порт

Если база была опубликована наружу через проброс порта на роутере, удалите и это правило. Иначе после перенастройки чужой сервис на том же порту окажется открыт в интернет.

Если после отключения что-то пошло не так

После отключения проверьте результат с другого компьютера: откройте в браузере старый адрес публикации. Правильный исход — «Не удаётся подключиться» (ERR_CONNECTION_REFUSED) или ответ 404 при живом Apache.

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

Частые вопросы

Можно ли удалить Apache целиком после отключения?
Да, если на нём нет других сайтов. Сначала отмените все публикации 1С, затем удалите службу командой httpd.exe -k uninstall и папку Apache. Удаление платформы 1С для этого не нужно.
Влияет ли отключение веб-сервера на лицензии 1С?
Нет. Лицензия расходуется сеансом пользователя, а не публикацией. Пользователи, которые работали через браузер, просто перейдут на тонкий клиент и будут занимать лицензии так же.
Нужно ли переустанавливать платформу, чтобы модуль веб-сервера исчез?
Нет. Модуль просто лежит в каталоге bin и ничего не делает, пока его не подключили в конфигурации веб-сервера. Компонент «Модули расширения веб-сервера» можно не ставить при следующем обновлении платформы.
Как вернуть публикацию, если отключили зря?
Восстановите сохранённый фрагмент httpd.conf и default.vrd либо опубликуйте базу заново из Конфигуратора с теми же именем и каталогом. Адрес для пользователей останется прежним.
Отключится ли веб-сервер, если просто закрыть порт в брандмауэре?
Снаружи — да, но сам сервер продолжит работать и будет доступен с этого же компьютера. Для полного отключения правило брандмауэра сочетают с остановкой службы или отменой публикации.