RSS
30 сентября 2026

nginx не перезагружает — он форкает. И это ломает сайты

Читал статью про nginx и reload — и понял, что даже «бесшовное» обновление может сломать работу. Не из-за бага, а из-за архитектуры. И это касается почти всех.

О чём речь и почему я считаю это важным

Речь о том, как nginx обновляет конфигурацию. Не просто «перезагружает», а форкает новых воркеров. Старые воркеры при этом закрывают idle-соединения — даже если клиент ещё не закончил. Это не ошибка, но может сломать неидемпотентный запрос.

Я считаю это важным, потому что такие сбои не видны в логах. Клиент получает 502, но сайт работает. Это не авария — это скрытая уязвимость, которую можно устранить заранее.

Как это устроено — что тут вообще происходит

nginx не перезагружает процессы. Он форкает новых поверх старых. Старые воркеры продолжают обслуживать активных клиентов — но закрывают только те, которые помечены как idle.

Ключевое — флаг idle. Он не означает «простаивает». Он означает «может быть закрыт». И если протокол не держит соединение открытым (например, WebSocket), то оно остаётся. А если HTTP/1.1 keep-alive — то закрывается. Даже если запрос ещё не завершён.

Как понять, что это касается вашего сайта

Проверяю это, если сайт использует nginx, прокси и keep-alive. Особенно если есть бэкенд, который долго отвечает или используется для загрузки файлов.

Если у вас есть формы, API, где запросы не идемпотентны — это риск. Или если клиенты жалуются на «случайные 502» после деплоя. Это не случайность — это поведение nginx.

Что с этим делать

Я не просто обновляю конфиг. Сначала смотрю, как настроены keep-alive, сколько времени живут соединения, как ведёт себя бэкенд.

Если возможно — перенесу деплой на пиковый час. Или добавлю задержку перед reload. Иногда — пересмотрю архитектуру: например, уменьшить keep-alive или использовать более стабильные бэкенды.

Что здесь даёт поддержка

На поддержке это не «починим после падения». Это «предотвращаем до падения». Проверяю конфиг, смотрю, как ведёт себя сайт при обновлении, и вношу изменения, чтобы устранить риски.

Главный итог не «мы починим», а «вы перестанете думать о сайте». Предсказуемость вместо авралов — это наша работа.

Работаем с 2002 года, более 100 клиентов по всему миру. Хотите проверить, как ваш сайт держится при обновлении? Сделайте бесплатный аудит сайта.

nginx не перезагружает — он форкает. И это ломает сайты

← Все материалы