nginx如何与docker配对处理引用的文件?



我正在运行一个dockerized django应用程序。我在 EC2 上部署了它。Nginx也在docker容器中。我的docker容器中的Nginx被配置为使用来自Lets Encrypt的SSL证书。

让我们加密证书的有效期仅为 90 天,这就是我设置一个 cronjob 来续订它们的原因。

我现在的问题是:我在 docker 容器中运行的 nginx 会自动使用更新的文件吗?还是我需要再次启动我的 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 容器。

我将不胜感激任何意见!提前感谢!

Nginx读取开始时提供的证书/配置。要重新读取它们,您可以重新启动nginx(容器(或向nginx发送reload信号:

nginx -s reload- 容器中的命令。还事先与nginx -t配对以检查配置文件的语法是否正常。

最新更新