远程控制nginx配置

问题描述 投票:0回答:3

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

以一种可以轻松测试和角色返回的方式管理我的 nginx 配置历史记录的最佳实践是什么?

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

谢谢!

git nginx configuration docker
3个回答
1
投票

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

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


0
投票

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

这是我的进化食谱:-

版本控制

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

测试

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

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

部署

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


0
投票

github 上有一个非常有趣的存储库,其中有足够的文档,可让您使用 API 监控和远程配置 nginx。

https://github.com/nginx/agent

© www.soinside.com 2019 - 2024. All rights reserved.