在同一时间的许多相同服务器上,如何更新 Nginx 配置文件?

分享于 

3分钟阅读

互联网

 

问题:

我们在AmazonEC2上有一组 Nginx 服务器,有时候需要更新配置文件来实现新的设置。

目前我们已经在定制AMI中配置了配置,如果需要更新,必须重新构建AMI和EC2实例。 我们有一些 helper 脚本,但是这样做仍然是相当的努力。 还有什么更好的方法?


回答 1:

有许多你可以利用的概念。

成功的关键是自动化。

第1 个选项是继续做你现在正在做的事情,用每一个配置变更表来重。 以完全自动化的方式。

当你通过ami进行配置更新时,你将进一步执行这里步骤,并在某些知识库中创建一个管道,在某些储存库中,将会发生以下情况:

  • 自动构建一个新的AMI - 一个最流行的工具是 Packer
  • 自动重新构建你的Nginx 舰队 - 你应该已经拥有所有的Nginx 服务器,在一个 /auto自动缩放组,with 应用程序负载均衡器 front。 如果不支持,就应该更新update更新 代理启动配置,并等待实例从新的AMI生成。
  • 第二个选项就是保持实例的位置和英镑,只部署配置文件,而不重新生成它们。 通常可以将配置文件视为代码,并按照部署代码发布的相同方式部署配置更改。 AWS有许多工具可以帮助。

    一旦你习惯自动化这些 Nginx 配置更新,你可能希望将自动化扩展到你的基础设施的其余部分。

    whitepaper 部署选项的whitepaper whitepaper Overview。

    我希望有帮助:)


回答 2:

在EFS上存储配置,并将EFS安装到位置 Nginx 配置中。 交替将它们放在 Amazon S3上,偶尔运行同步,或者使用,( 注意s3fs可能不够适合生产使用)。

当你需要更改配置时,将你需要的大小增加到需要触发新实例的两倍。 或者只是对服务器进行一次滚动重启。

另一个选择是使用基本自动化工具将新配置推送到你的服务器,如AWS代码部署。

上面的完全自动化选项是技术更好和更清晰的,但如果你很少更改配置并且需要一个简单。


回答 3:

像它的他人一样建立an或者创建一个完全成熟的部署管道,建议只对配置文件更改。 你应该使用Ansible来推出更改,并保持所有节点同步。 有许多Ansible模块可以帮助你自动化常见任务。



文件  Server  时间  IDE  Nginx  ident  
相关文章