Выбор ответа Junior Балансировка и nginx спрашивают часто обновлено

Применить новый конфиг nginx

Вопрос

Как применить изменённый конфиг nginx без обрыва текущих соединений?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: nginx -t, затем nginx -s reload. reload запускает новые воркеры с новым конфигом, а старые дорабатывают текущие запросы и завершаются.

Варианты ответа

  1. systemctl restart nginx, он дожидается окончания запросов
  2. kill -9 мастер-процесса и запуск заново тем же юнитом
  3. Ничего: конфиг применяется сам при сохранении файла через inotify
  4. nginx -t, затем nginx -s reloadправильный ответ

Разбор

reload запускает новые воркеры с новым конфигом, а старые дорабатывают текущие запросы и завершаются. Предварительный nginx -t не даст применить битый конфиг: при ошибке reload и так не применит его, но проверка в скрипте даёт понятную ошибку. restart и kill рвут соединения. Автоматического применения нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.