SystemdDoctor
служба не работает nginx падение

nginx: worker process exited on signal

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

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Падает сторонний модуль

    Модули для сжатия, геобазы, скриптов на Lua падают чаще самого nginx, особенно после обновления одной части без другой.

  2. Нехватка памяти рабочему процессу

    Большие буферы на запрос при многих соединениях исчерпывают память. Ядро убивает рабочий процесс, nginx поднимает новый.

  3. Дамп памяти не сохраняется, и причина неизвестна

    Без дампа остаётся только гадать, в каком модуле сбой.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Сигнал, с которым падал процесс, и частота падений.

sudo tail -40 /var/log/nginx/error.log | grep -i "worker process"

Сохранённые дампы, если они разрешены.

coredumpctl list --no-pager | tail -5

Версия и модули сборки: частый источник падений.

nginx -V 2>&1 | head -3

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Падает сторонний модуль
Почему происходит
Модули для сжатия, геобазы, скриптов на Lua падают чаще самого nginx, особенно после обновления одной части без другой.
Как проверить
Посмотрите сигнал и список модулей сборки.
sudo tail -30 /var/log/nginx/error.log | grep -i "worker process"
nginx -V 2>&1 | tr " " "\n" | grep add-module
Как исправить
Отключите подозрительный модуль и проверьте, прекратились ли падения. Дальше — обновление модуля или отказ от него.
2. Нехватка памяти рабочему процессу
Почему происходит
Большие буферы на запрос при многих соединениях исчерпывают память. Ядро убивает рабочий процесс, nginx поднимает новый.
Как проверить
Посмотрите записи ядра и настройки буферов.
journalctl -k -b --no-pager | grep -i "killed process" | grep -i nginx
sudo nginx -T 2>/dev/null | grep -E "buffer|buffers"
Как исправить
Уменьшите буферы или число рабочих соединений: считать надо по формуле «соединения умножить на буферы».
3. Дамп памяти не сохраняется, и причина неизвестна
Почему происходит
Без дампа остаётся только гадать, в каком модуле сбой.
Как проверить
Посмотрите предел дампов у службы.
systemctl show nginx -p LimitCORE
coredumpctl list --no-pager | tail -5
Как исправить
Разрешите дампы на время разбора: LimitCORE=infinity в переопределении unit и working_directory в настройках nginx для записи дампа.

Пример вывода

Рабочий процесс упал в стороннем модуле. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

2026/09/15 16:02:41 [alert] 1120#1120: worker process 1121 exited on signal 11 (core dumped)
2026/09/15 16:02:41 [notice] 1120#1120: start worker process 1140

coredumpctl info nginx | grep -A3 "Stack trace"
    #0  0x00007f2a1c4b21a0 ngx_http_geoip2_variable (ngx_http_geoip2_module.so)

Связанные ошибки

  • signal=SEGV (status=11/SEGV) в systemd Процесс службы завершён сигналом SEGV: обращение к недопустимой памяти. Как собрать дамп и что смотреть.
  • Failed with result 'core-dump' Состояние core-dump: процесс службы аварийно завершился и сохранил дамп памяти. Как открыть дамп и прочитать трассировку.
  • Failed with result 'oom-kill' Состояние oom-kill: процесс службы убит из-за нехватки памяти. Как понять, упёрлись в предел службы или в память машины.
  • nginx 403 Forbidden и Permission denied на файлы сайта nginx отдаёт 403: нет прав на файлы сайта, закрыт каталог по пути, мешает SELinux или AppArmor, нет индексного файла.
  • nginx 413 Request Entity Too Large Загрузка файла отклонена: превышен client_max_body_size. Где менять и что ещё ограничивает размер.
  • nginx 502 Bad Gateway: connect() failed к приложению nginx работает, а приложение недоступно: connect() failed, connection refused, no such file or directory для сокета. Разбор 502.
  • nginx 504 Gateway Time-out: upstream timed out nginx не дождался ответа приложения. Разбор таймаутов proxy_read_timeout и fastcgi_read_timeout, поиск медленных мест.
  • nginx reload не применяет изменения Перезагрузка nginx прошла, а изменения не действуют: правка не в том файле, файл не включён, кеш, старые рабочие процессы.

Где встречается чаще всего

Источники

  • Документация nginx: отладка документация программы
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено падением стороннего модуля на тестовой сборке.
    собственная проверка, systemd 255
    сверено 15 сентября 2026