Обновить

Комментарии 5

Хороший честный разбор своего факапа.

Не знаю ваш уровень и как вы относитесь к критике, но рискну. Для админа - ок. Для девопса - слишком сложная конфигурация для простой задачи. В 2020 году - это было бы отличное решение для большого и тяжелого проекта. Для малого… Traefik или Caddy вместо связки Nginx + Certbot. В 2026 году для динозавров вроде меня есть Angie - форк Nginx, который уже пару лет как умеет из коробки работать с сертификатами.

И все это тогда будет намного проще автоматизировать через Ansible - не несколько тасок меньше, быстрее тестировать, быстрее деплоить - один конфиг, никаких дополнительных скриптов и хуков.

Спасибо!

Проверил Angie - да, умеет сам с версии 1.5.0. И главное, он сам же подхватывает новый сертификат. У меня сломалось именно это: certbot положил новый файл на диск, а nginx продолжал отдавать старый, потому что его никто не перезапустил.

Посмотрел свой конфиг после вашего комментария - там один домен и три прокси. Так что да, certbot с хуками для такого жирновато, на Caddy вышло бы строк десять.

Текст отдает нейрослопом.

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

-s reload не применит битый конфиг и ругнется на его битость.

Поправка принята, спасибо. Проверил: сломал конфиг на тестовом контейнере, дёрнул reload - ругнулся и не применил, сайт работает. Статью исправил. Про слоп - виноват мой ревьюер Клодий Гптивич :). Однако в реальности ситуации можете не сомневаться

Про ситуацию вообще не спорю, сам такое ловил. :) И сам из автоматизации убирал бессмысленную в данной ситуации связку “nginx -t && nginx -s reload”. Поэтому и решил поделиться опытом.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации