背景:
我在Docker内部运行一个应用程序,它将由随机用户管理,这些用户通常对Docker本身没有任何了解。我正在构建该应用程序,以尽可能多地从the服务器本身配置。
它运行3个非根容器:
Certbot
我能够让Django应用程序通过网站本身运行certbot来获得证书,并将证书复制到nginx正在使用的卷中。但是,旧的或自签名的证书似乎在启动时由nginx缓存,因此在重新启动nginx之前不会使用新的证书。
问题是,我现在必须重新启动nginx,或者以某种方式自动重新加载证书。或者通过触发从Django容器到Nginx容器的重新启动,可能是通过卷曲之类的方式。或者,我可以使用类似于看门狗的东西来监视文件以进行文件更改。
问题:
如果证书更改,自动重新加载nginx的最佳方法是什么?或者,即使不重新启动服务器,我也可以清除证书缓存中的证书吗?你在这里有什么建议?
谢谢你提前帮忙!
发布于 2020-06-17 16:45:47
重新加载应足以加载新的证书。
一些备选方案:
0 */6 * * * docker exec <nginx_container_name> nginx -s reload
/etc/letsencrypt/cli.ini:
deploy-hook = nginx -s reloadhttps://stackoverflow.com/questions/62431911
复制相似问题