如何重新加载作为docker swarm服务运行的nginx?

时间:2019-10-18 04:15:41

标签: docker nginx docker-swarm

我有一个作为docker swarm服务运行的https nginx服务器。更新证书后,如何要求Nginx重新加载它们?

docker service update --force似乎重新启动了服务,因此客户端将被中断?

没有docker service run我可以运行nginx -s reload

我应该怎么做才能重新加载nginx而不重新启动它?

1 个答案:

答案 0 :(得分:0)

如果您希望零停机时间,那么这里是一种方法:

将nginx服务缩放到2,然后更新nginx服务。更新服务时,默认情况下它将一一执行。这样该用户就不会看到任何停机时间。

您可以在docker-compose.yaml文件中对其进行控制。

services:
  nginx:
    image: REPO:TAG
    deploy:
      replicas: 2
      update_config:
        parallelism: 1
        delay: 10s
      restart_policy:
        condition: on-failure

“并行性:1”将一次更新容器。