背景:
我在Docker容器内运行一个应用程序,由随机用户管理,他们通常对Docker本身没有任何了解。 我正在构建这个应用程序,使其尽可能从Web服务器本身进行配置。
它运行3个非root容器:
- 容器1:Gunicorn、Django、Certbot
- 容器2:Nginx
- 容器3:Postgresql
我可以通过网站本身让Django应用程序运行certbot来获取证书并将证书复制到nginx正在使用的卷中。 但是,旧的或自签名证书似乎会在启动时被nginx缓存,因此新证书直到重新启动nginx后才会使用。
这里有一个问题,我现在必须重新启动nginx或以某种方式自动重新加载证书。 可以通过从Django容器触发重启到Nginx容器,例如通过curl之类的方式。 或者我可以使用类似于watchdog的东西来监视文件是否发生了变化。
问题:
如果证书更改,重新加载nginx的最佳方法是什么?或者我可以在不重新启动服务器的情况下清除证书缓存吗?您在这里有什么建议?
提前感谢您的帮助!
nginx -t && nginx -t reload
,这样任何无效的配置都不会导致您的网站在半夜崩溃。 - Daniël van den Bergnginx -t && nginx -s reload
,对吗? - PFudddeploy-hook = systemctl reload nginx
иҖҢдёҚжҳҜnginx -s reload
гҖӮ - Dmitry