【发布时间】:2020-10-07 10:39:14
【问题描述】:
背景:
我正在 Docker 中运行一个应用程序,该应用程序将由通常不了解 Docker 本身的随机用户管理。我正在构建应用程序,以便尽可能从网络服务器本身进行配置。
它运行 3 个非根容器:
- 容器 1:Gunicorn、Django、Certbot
- 容器 2:Nginx
- 容器 3:Postgresql
我可以让 Django 应用程序通过网站本身运行 certbot 以获取证书并将证书复制到 nginx 正在使用的卷中。但是旧的或自签名的证书似乎在启动时被 nginx 缓存,因此在 nginx 重新启动之前不会使用新证书。
这就是问题所在,我现在必须重新启动 nginx 或以某种方式自动重新加载证书。通过触发从 Django 容器到 Nginx 容器的重新启动,可能是通过 curl 或其他方式。或者我可以使用看门狗之类的东西来监视文件以进行文件更改。
问题:
如果证书更改,自动重新加载 nginx 的最佳方法是什么?或者我可以在不重新启动服务器的情况下清除证书的证书缓存吗?您对此有何建议?
提前感谢您的帮助!
【问题讨论】: