Почему reload нужно делать через nginx -t
28 августа 2026
Ошибка, которая долго не проявляется, — худший вид ошибки. С nginx она
выглядит так: правишь конфиг, делаешь nginx -s reload, всё
продолжает работать. Кажется, что применилось. На самом деле конфиг битый,
мастер-процесс это увидел, отказался перечитывать и остался на старом.
Дальше сайт неделю живёт как ни в чём не бывало, а потом контейнер рестартует по любой причине — обновление образа, перезагрузка хоста — и nginx просто не поднимается. Причём правку к этому моменту уже никто не помнит.
Лечится одной привычкой:
nginx -t && nginx -s reload
В докере — так:
docker compose exec nginx nginx -t && \
docker compose exec nginx nginx -s reload
&& здесь принципиально: без него вторая команда
выполнится даже при провале первой, и вы вернётесь ровно туда, откуда начали.