Я запускаю докеризованное приложение django. Я развернул его на EC2. Nginx также находится в docker контейнере. Nginx в моем docker -контейнере настроен так, что он использует ssl-сертификаты от Lets Encrypt.
Позволяет шифровать сертификаты только в течение 90 дней, поэтому я установил cronjob для их продления.
Мой вопрос теперь таков: будет ли мой nginx, работающий в контейнере docker, автоматически использовать обновленный файл? Или мне нужно снова развернуть мой контейнер docker и собрать его заново, чтобы изменения вступили в силу? В последнем случае можно ли указать nginx использовать обновленный файл, чтобы мне не пришлось перестраивать свой контейнер? Я спрашиваю, потому что я хотел бы минимизировать время простоя для моего приложения.
Для большей ясности я предоставляю свой конфиг. Важные файлы - это ssl-сертификаты, на которые есть ссылки:
server {
listen 443 ssl;
server_name mydomain;
charset utf-8;
ssl_stapling off;
ssl_stapling_verify off;
ssl_certificate /etc/letsencrypt/live/mydomain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain/privkey.pem;
location / {
proxy_pass http://django:5000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Здесь мой составной файл:
production-nginx-container:
container_name: 'production-nginx-container'
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- /home/ubuntu/nginx-conf/myconf.conf:/etc/nginx/conf.d/default.conf
- /etc/letsencrypt/live/mydomain/fullchain.pem:/etc/letsencrypt/live/mydomain/fullchain.pem
- /etc/letsencrypt/live/mydomain/privkey.pem:/etc/letsencrypt/live/mydomain/privkey.pem
depends_on:
- django
Я вижу только два варианта: либо nginx сохраняет этот файл открытым все время пока мой docker контейнер работает или нет.
Если он остается открытым, я предполагаю, что мне нужно перезапустить контейнер docker, который мне не нужен :).
Буду признателен за любой вклад! Заранее спасибо!