Перезапуск веб-сервера 1С Предприятие: IIS, Apache, Linux
Содержание
Веб-клиент завис, база по ссылке отвечает «503» или пользователи сидят на белом экране. Быстрее всего помогает перезапуск веб-сервера: в Windows это служба IIS или пул приложений, в Linux — служба apache2 или httpd. Саму службу сервера 1С при этом трогать обычно не нужно.
Сначала определите, какой веб-сервер у вас стоит и что именно висит: весь сайт, один пул приложений или сервер 1С за ним. Это занимает минуту и решает, какой перезапуск выбирать: мягкий, полный или только пула.
Что именно у вас запущено: определяем веб-сервер и схему публикации
Перезапускать вслепую не стоит. У 1С три отдельных звена, и каждое перезапускается своим способом:
- 🌐 Веб-сервер (IIS или Apache) — принимает HTTP-запросы и отдаёт страницы.
- 🧩 Веб-расширение 1С — модуль, который подключён к веб-серверу и передаёт запросы дальше. На IIS это обработчик в настройках сайта, на Apache — подключённая библиотека в конфигурации.
- 🗄 Сервер 1С:Предприятия — служба «Агент сервера 1С:Предприятия 8.3» и рабочие процессы. К веб-серверу не относится.
Если веб-сервер упал, но база в толстом клиенте открывается, значит, виноват именно он. Если не открывается и толстый клиент, перезапуск веб-сервера ничего не даст — смотрите сервер 1С.
Как узнать, IIS это или Apache
На Windows-сервере откройте services.msc и найдите службы:
- «Служба публикации в Интернете» (в списке встречается как
W3SVC) — это IIS; - «Apache2.4» или похожее имя — Apache.
Не уверены — зайдите в каталог, куда опубликована база. В нём лежит файл default.vrd с описанием публикации. Рядом с ним на IIS обычно есть web.config, а на Apache в конфигурацию веб-сервера добавлен блок с путём к этому каталогу.
Что проверить до перезапуска
Перезапуск обрывает активные HTTP-сессии. Пользователи веб-клиента и мобильного приложения потеряют несохранённые данные. Проверьте три вещи:
- Кто сейчас подключён: консоль администрирования серверов 1С, список сеансов.
- Нет ли длительных регламентных заданий, которые идут через веб-сервис.
- Свободное место на системном диске: забитый диск ломает и IIS, и Apache, и перезапуск тут не лечит.
Если база работает в клиент-серверном режиме и пользователи сидят по тонкому клиенту через обычное подключение, веб-сервер их не затрагивает. Перезапуск ударит только по веб-клиенту, HTTP-сервисам и обменам по HTTP.
Перезапуск через оснастку IIS: быстрый способ мышкой
Подходит, если сервер под рукой и команд вы не любите.
Перезапуск всего сайта и сервера
- Откройте «Диспетчер служб IIS» (поиск по меню «Пуск» —
IIS). - В левой панели выделите имя сервера (верхний узел дерева).
- В правой панели «Действия» нажмите «Перезапустить».
Это полный перезапуск всех сайтов на сервере. Если на машине кроме 1С живут другие сайты, они тоже на секунды пропадут.
Перезапуск только пула приложений
Мягче и обычно достаточно:
- В дереве откройте узел «Пулы приложений».
- Найдите пул, в котором работает публикация 1С. Имя пула часто совпадает с именем сайта или называется
DefaultAppPool. - Выделите его и нажмите «Остановить», дождитесь статуса «Остановлено», затем «Запустить».
- Если нужна «перезагрузка рабочего процесса» без остановки, используйте пункт «Утилизация» (в английской версии — Recycle).
Утилизация пула создаёт новый рабочий процесс, а старый доделывает текущие запросы. Для зависшего процесса это не поможет, там нужна именно остановка.
Смотрите на счётчик «Рабочие процессы» в оснастке: если у пула висит процесс w3wp.exe с огромным потреблением памяти и без отклика, остановка с запуском будет надёжнее утилизации.
Перезапуск сайта без трогания пула
Узел «Сайты» → ваш сайт → в «Действиях» кнопки «Остановить» и «Запустить». Эта операция полезна, когда проблема в привязках или в сертификате, а не в процессе.
Командная строка и PowerShell: перезапуск службами и скриптами
Консоль нужна, когда зайти по RDP сложно или перезапуск надо повторять. Все команды запускайте от имени администратора.
Классический iisreset
iisreset /restart
Команда останавливает и запускает всю службу IIS. Если хотите только проверить состояние, выполните iisreset /status.
Если сервер не успевает завершиться штатно, команда с ключом /timeout:60 ждёт указанное число секунд:
iisreset /restart /timeout:60
Через службы Windows
net stop w3svc
net start w3svc
Так проще разделить остановку и запуск: между ними можно выполнить очистку временных файлов или проверку.
PowerShell: пул, сайт, служба
Служба целиком:
Restart-Service W3SVC -Force
Пул приложений и сайт (нужен модуль WebAdministration):
Import-Module WebAdministration
Restart-WebAppPool -Name "DefaultAppPool"
Stop-Website -Name "Default Web Site"
Start-Website -Name "Default Web Site"
Подставьте свои имена. Список имён посмотрите так: Get-WebAppPoolState и Get-Website.
Сводка способов
| Способ | Что затрагивает | Когда выбирать | Риск |
|---|---|---|---|
| Утилизация пула | Один рабочий процесс | Рост памяти, медленный отклик | Минимальный |
| Остановка и запуск пула | Все публикации в пуле | Процесс завис | Обрыв сессий пула |
| Перезапуск сайта | Один сайт | Проблема с привязкой или сертификатом | Обрыв сессий сайта |
iisreset | Весь IIS на сервере | Ничего другое не помогло | Недоступны все сайты |
Apache на Windows и Linux: перезапуск и перечитывание конфигурации
Apache удобно перезапускать не только «целиком»: он умеет перечитать конфигурацию без обрыва соединений.
Windows
Через службы: services.msc → служба Apache → «Перезапустить». Из консоли имя службы нужно знать точно:
net stop Apache2.4
net start Apache2.4
Проверьте реальное имя в списке служб, оно может отличаться.
Linux
Команды зависят от дистрибутива. В Debian и Ubuntu служба называется apache2, в семействе Red Hat — httpd.
sudo systemctl restart apache2
sudo systemctl status apache2
Для Red Hat-подобных систем:
sudo systemctl restart httpd
Мягкий вариант без обрыва активных запросов:
sudo systemctl reload apache2
reload перечитывает конфигурацию, но рабочие процессы с зависшим запросом не убивает. Для зависания нужен именно restart.
Проверка конфигурации до перезапуска
Если вы правили файл публикации вручную, сначала проверьте синтаксис, иначе Apache просто не поднимется:
sudo apachectl configtest
Ответ Syntax OK означает, что можно перезапускать. В остальных случаях команда покажет строку с ошибкой.
Если после правок службе не хватает прав на каталог публикации, Apache стартует, а база отдаёт ошибку 500. Проверьте владельца каталога с default.vrd и права чтения у пользователя, под которым работает веб-сервер.
Перепубликация вместо перезапуска
Иногда зависание вызвано не процессом, а устаревшей публикацией после обновления платформы. Тогда достаточно заново выполнить публикацию через Конфигуратор: «Администрирование» → «Публикация на веб-сервере». Там выбираются имя, каталог и веб-сервер. После публикации веб-сервер обычно просит перезапуск, и его нужно сделать.
Что проверить после перезапуска: признаки живого сервера
Служба в статусе «Работает» ещё не гарантирует, что 1С отвечает. Проверяйте по порядку:
- Откройте в браузере адрес базы с локального сервера, например
http://localhost/имя_базы. Если локально открывается, а снаружи нет, смотрите файрволл и привязки. - Для HTTP-сервисов откройте их адрес в браузере: должен прийти ответ, а не ошибка шлюза.
- Зайдите под своей учётной записью и откройте любой справочник: так вы убедитесь, что связь с сервером 1С работает.
Таблица кодов ответа
default.vrd, проверьте путь к серверу 1С и версию платформы, под которой собрана публикация. Права на каталог тоже стоит перепроверить.default.vrd и порт, который сервер слушает.Если после перезапуска проблема осталась
Не перезапускайте веб-сервер в третий раз подряд, это не поможет. Двигайтесь от простого к сложному:
- 🔍 Журнал событий. В «Просмотре событий» Windows откройте журнал «Приложение» и «Система», найдите записи в момент сбоя. Для IIS полезны логи запросов с кодами ответа.
- 🔍 Журнал регистрации 1С. Если запрос дошёл до базы, ошибка будет там.
- 🔍 Лог Apache. В Linux это
error.logв каталоге журналов Apache. Он показывает, какую библиотеку или файл сервер не смог загрузить. - 🔍 Версия платформы. После обновления платформы публикацию нужно пересоздавать: веб-расширение привязано к конкретной версии.
- 🔍 Служба сервера 1С. Если сервер 1С завис, перезапуск веб-сервера бесполезен. Перезапускайте «Агент сервера 1С:Предприятия 8.3», предупредив пользователей.
Альтернатива перезапуску всего сервера
Если пользователи мешают только в одной базе, не перезапускайте весь IIS. Отключите в консоли администрирования зависшие сеансы нужной базы и перезапустите только пул этой публикации. Остальные сайты и базы не заметят.
Заведите отдельный пул приложений под каждую публикацию 1С, особенно под разные версии платформы. Тогда один зависший пул не потянет за собой остальные, и «перезапуск» превращается в точечную операцию.
Автоматизация: перезапуск по расписанию и контроль зависаний
Регулярный перезапуск по ночам скрывает проблему, но и спасает, пока вы её ищете. Делайте его осознанно.
Утилизация пула по расписанию
В оснастке IIS: «Пулы приложений» → ваш пул → «Параметры утилизации». Доступны варианты:
- по интервалу времени;
- в конкретное время суток;
- по превышению лимита виртуальной или закрытой памяти.
Для 1С разумно выбрать ночное время вне рабочих часов и лимит по памяти, чтобы зависший процесс не раздувался днём.
Задача в планировщике
Простой вариант на Windows — запуск скрипта по расписанию через «Планировщик заданий». Скрипт на PowerShell:
Import-Module WebAdministration
$state = (Get-WebAppPoolState -Name "DefaultAppPool").Value
if ($state -ne "Started") { Start-WebAppPool -Name "DefaultAppPool" }
Запускайте его раз в несколько минут: он поднимет пул, если тот остановился. Ночной полный перезапуск лучше делать отдельной задачей.
На Linux: cron и systemd
Для Apache подойдёт cron:
0 4 * * * systemctl reload apache2
Здесь reload в 4 утра: он безопасно перечитывает конфигурацию. Если нужна именно остановка, замените на restart.
Чтобы Apache сам поднимался после сбоя, в юните службы можно задать Restart=on-failure. Правьте юнит через systemctl edit apache2, а не файл в /lib.
Мониторинг
Достаточно внешней проверки адреса базы: запрос раз в минуту и оповещение, если ответа нет или приходит 5xx. Такая проверка заметит зависание раньше, чем позвонят пользователи.
Частые вопросы
Перезапуск веб-сервера прерывает работу в толстом клиенте?
Чем `iisreset` отличается от перезапуска пула?
iisreset перезапускает всю службу IIS и все сайты. Перезапуск пула затрагивает только приложения, привязанные к нему. Для 1С чаще хватает пула.Нужно ли пересоздавать публикацию после перезапуска?
default.vrd.