Снимаем базу 1С с публикации и гасим Apache или IIS без последствий
Содержание
Чтобы отключить веб-сервер 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 в отдельную папку: если отключение придётся откатить, восстановите всё за пять минут.
Отмена публикации базы в Конфигураторе
Это самый мягкий способ. Веб-сервер продолжает работать, но конкретная база из него исчезает.
- Запустите Конфигуратор от имени администратора. Без прав администратора Windows платформа не сможет изменить
httpd.confили настройки IIS. - Откройте
Администрирование → Публикация на веб-сервере. - В поле «Веб-сервер» выберите тот, на котором опубликована база.
- Проверьте имя публикации и каталог — они должны совпадать с тем, что вы нашли в конфигурации.
- Нажмите кнопку отключения публикации внизу окна (рядом с «Опубликовать»).
- Подтвердите перезапуск веб-сервера, когда платформа предложит.
Каталог публикации с default.vrd после отмены иногда остаётся на диске. Он безвреден, но удаляйте его вручную только после проверки, что база действительно пропала из конфигурации веб-сервера.
Частичное отключение: только веб-клиент или только сервисы
В том же окне публикации есть флажки и вкладки для веб-сервисов, HTTP-сервисов и OData. Если обмен с сайтом должен жить, а сотрудникам из браузера база больше не нужна:
- снимите флажок публикации доступа для клиентских приложений;
- на вкладках сервисов оставьте отмеченными только используемые;
- нажмите «Опубликовать» — платформа перезапишет
default.vrd.
Так вы закроете веб-клиент, не ломая интеграции.
Остановка службы Apache или IIS в оснастке «Службы»
Если веб-сервер на машине держали только ради 1С, его можно остановить целиком.
- Нажмите
Win+R, введитеservices.msc. - Найдите службу:
- Apache — обычно
Apache2.4(имя задаётся при установке, бываетApache24или своё); - IIS — «Служба веб-публикаций» (
W3SVC).
- Apache — обычно
- Откройте свойства двойным щелчком, нажмите «Остановить».
- В поле «Тип запуска» выберите «Отключена» и нажмите «Применить».
Без шага 4 служба поднимется после ближайшей перезагрузки сервера. Это самая частая причина, по которой «отключённый» веб-сервер через неделю снова отвечает на запросы.
На одном сервере с IIS часто живут другие сайты: личный кабинет, сервисы терминального доступа, служебные порталы. Перед остановкой W3SVC откройте «Диспетчер служб IIS» и посмотрите список сайтов. Если там не только 1С — снимайте публикацию, а службу не трогайте.
Блокировка доступа к базе через консоль кластера
Консоль администрирования серверов 1С не управляет Apache и IIS. Но она умеет закрыть саму базу — для всех, включая веб-клиент. Это удобно, когда доступ нужно перекрыть на время, без переделки публикаций.
- Откройте «Администрирование серверов 1С Предприятия».
- Разверните
Центральные серверы → имя сервера → Кластеры → кластер → Информационные базы. - Откройте свойства нужной базы (может потребоваться логин и пароль администратора базы).
- Включите «Блокировка начала сеансов включена», задайте время начала и окончания и сообщение для пользователей.
- При необходимости включите и «Блокировка регламентных заданий включена».
Пользователь веб-клиента увидит ваше сообщение вместо входа в базу. Блокировка не обрывает уже открытые сеансы: их завершают вручную в ветке «Сеансы» той же консоли.
Что ещё видно в консоли
В ветке «Сеансы» колонка «Приложение» показывает тип подключения. Сеансы веб-клиента и веб-сервисов отличаются от тонкого клиента. Посмотрите на них за пару рабочих дней до отключения — это самый честный ответ на вопрос, кто на самом деле пользуется публикацией.
Отключение веб-сервера 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 целиком после отключения?
httpd.exe -k uninstall и папку Apache. Удаление платформы 1С для этого не нужно.Влияет ли отключение веб-сервера на лицензии 1С?
Нужно ли переустанавливать платформу, чтобы модуль веб-сервера исчез?
bin и ничего не делает, пока его не подключили в конфигурации веб-сервера. Компонент «Модули расширения веб-сервера» можно не ставить при следующем обновлении платформы.Как вернуть публикацию, если отключили зря?
httpd.conf и default.vrd либо опубликуйте базу заново из Конфигуратора с теми же именем и каталогом. Адрес для пользователей останется прежним.