背景:
我正在Docker中运行一个应用程序,该应用程序将由通常不了解Docker本身的随机用户管理。我正在构建该应用程序,以便尽可能从Web服务器本身进行配置。
它运行3个非根容器:
我能够让Django应用通过网站本身运行certbot以获得证书并将证书复制到nginx正在使用的卷中。但是旧的或自签名证书似乎在启动时由nginx缓存,因此直到重新启动nginx才使用新证书。
这是问题所在,我现在必须重新启动nginx或以某种方式自动重新加载证书。通过触发从Django容器到Nginx容器的重启,可能是通过curl或其他方式。或者,我可以使用看门狗之类的工具来监视文件中的文件更改。
问题:
如果证书更改,自动重新加载Nginx的最佳方法是什么?还是可以在不重新启动服务器的情况下清除证书的证书缓存?您在这里有什么建议?
谢谢您的帮助!
答案 0 :(得分:2)
重新加载应该足以加载新证书。
一些选项:
0 */6 * * * docker exec <nginx_container_name> nginx -s reload
/etc/letsencrypt/cli.ini:
deploy-hook = nginx -s reload