Фото Эрика Нильссон на Unsplash (обрезанный)
Предупреждение: этот блог пост предполагает следующее:
- Вы используете Nginx в Докер контейнер.
- Давайте шифровали правильно настроены в контейнере Nginx.
- Вы потрясающие для чтения этого блога.
Поведение по умолчанию Certbot (Давайте зашифрованным инструментом командной строки) — перезапустить веб-сервер. Это не желательно в живой среде, в идеале вы хотите, чтобы ваш веб-сервер перезагрузить его конфигурацию. Для nginx это включает в себя отправку сигнал в процесс, в этом случае это HUP
(повесить трубку).
Но как вы можете сказать, что ваши сертификаты были обновлены?
Рекомендуемый путь NGINX (организация, а не веб-сервер) — проверять PID (идентификаторы процессы) перед запуском nginx для перезагрузки конфигурации.
docker topaxw -o pid,ppid,command | egrep '(nginx|PID)' PID PPID COMMAND 2089 31208 tail -f /var/log/nginx/access.log 3509 31222 nginx: worker process 31222 31208 nginx: master process nginx -g daemon off;
PID, который вы хотите наблюдать, это Процесс работника Nginx (Команда), которая в этом примере является 3509 Отказ
Pro-наконечник: вы можете пройти Топ Докера
подкоманды PS
Флаги? Аккуратно да?
Теперь давайте отправим HUP
Сигнал к контейнеру, чтобы заставить Nginx перезагрузить конфигурацию: Docker Kill -signal HUP
потом Перепроверьте PID
docker topaxw -o pid,ppid,command | egrep '(nginx|PID)' PID PPID COMMAND 2089 31208 tail -f /var/log/nginx/access.log 3643 31222 nginx: worker process 31222 31208 nginx: master process nginx -g daemon off;
PID Процесс работника Nginx теперь изменился на 3643 Действительно
Дальнейшее чтение:
Оригинал: «https://dev.to/booyaa/lets-encrypt-certificate-renewal-without-downtime-1njp»