【问题标题】:remote control nginx configuration远程控制nginx配置
【发布时间】:2016-08-20 03:11:03
【问题描述】:

我想避免连接到远程机器来编辑 nginx conf 文件。
我宁愿从 git 和 jenkins 控制它。

以我可以轻松测试并恢复角色的方式管理我的 nginx 配置历史记录的最佳做法是什么?

  • (git+docker+nginx可以解决吗?)

谢谢!

【问题讨论】:

    标签: git nginx configuration docker


    【解决方案1】:

    您可以创建一个具有配置的卷并将其挂载到 nginx 容器中。当您需要更新配置时,只需替换卷中的文件(git、从主机复制文件等)并通过 docer exec 向 nginx 服务发送重新加载命令。 此外,您可以使用 nginx 配置将主机目录挂载(只读)到容器。

    https://docs.docker.com/engine/userguide/containers/dockervolumes/

    【讨论】:

      【解决方案2】:

      我喜欢@komex 接受的答案,这很好,但需要您维护一个卷,并且没有解决问题中提出的测试生命周期和部署问题。在我们确保文件正确并成功测试后,还应使用文件构建卷。

      这是我的进化配方:-

      版本控制

      必须使用一些 SCM,例如 git。将您的配置保存在 git 存储库中。

      测试

      使用 CI/CD Jenkins 并使用 docker 使用配置文件从 nginx 构建映像。您可能想要使用环境变量而不是硬编码配置中的任何 URL,以便在您的测试设置中您可以指向虚拟值并运行您的单元测试。您的单元测试可能只是一堆卷曲和预期的响应。测试后,您可以轻松破坏此设置。

      您的 CI 确保正确配置作业运行的所有内容。

      部署

      现在您可以构建卷以进行部署。附加/分离您的卷。 但是你在一个完整的 k8s 环境中,我只需从 ngnix 构建我的镜像(就像上面 CI 中的测试作业一样)并部署 pod,甚至不需要卷或重新加载。

      【讨论】:

        猜你喜欢
        • 2015-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多