跨多服务器的通用 NGINX 配置方案

跨多服务器的通用 NGINX 配置方案

我的设置由多台服务器组成,包括生产服务器、生产故障转移服务器、开发人员实例等。生产服务器和生产故障转移服务器会定期交换角色。我希望所有服务器都具有一致的环境。我在 Apache 中通过使用虚拟主机来实现这一点,并根据需要启用/禁用它们。

我遇到的一个问题是 NGINX 主配置文件中的设置会根据服务器硬件进行调整,尤其是上下文events。我目前倾向于events-[subdomain].conf为每个服务器创建一个文件,并创建一个名为 的符号链接events.conf。我只需更改符号链接即可使用相应的文件。

events {
    include events.conf;
}

这是处理这个问题的好方法吗?缺点是什么?更好的解决方案是什么?

答案1

简短的回答:是的,但可能有更好的方法。

编辑下面段落中描述的约定现在已被弃用,任何附加配置文件都应在主配置文件中使用include指示

较长的回答:~在 Nginx 中,每个服务器或网站通常在外部文件中定义,通常位于 nginx 配置目录的“enabled-sites”或“sites-enabled”子目录中 - 我将我的文件命名为 enabled-sites,因为它可以通过制表符补全更快地进行更改。主 Nginx 配置文件通常包含此目录中的所有内容。

您可以将所有服务器的所有配置文件放入此子目录中并同步该目录,或引用共享位置中的目录。每个服务器的 nginx.conf 可以仅包含该服务器当时所需的文件。这样更改起来会相当快。

但是,自动化是好的。如果您可以定义配置文件,使它们在该角色的所有服务器上工作,您可能能够避免手动更改,并且它可能在负载平衡器后面工作得更好。nginx.conf 可能不同,但服务器配置相同。这应该相当容易。

相关内容