Nginx – 多个服务器配置

我有一个由8个独立Web服务器组成的集群,每个服务器都运行Nginx.
他们都托管相同的网站,并与rsync同步.

此外,每个服务器都附加了8个不同的IP地址.

根据一些业务逻辑,我的托管网站被定向到不同的IP.

有没有什么方法可以在所有服务器之间同步配置文件,但是只更改每个服务器上的IP?

例如,在每台服务器上都有一个Nginx.conf:

@IP1 = '1.1.1.1';
@IP2 = '2.2.2.2';

include 'sites.conf';

然后同步sites.conf并让它像:

server {
  listen @IP1:80;
  ... //more configurations here
}

有可能做那样的事吗?

最佳答案
正如其他人所说,Nginx不支持这一点.

可能的可能是为每个单独的主机使用单独的配置文件,并让Nginx启动脚本直接引用该配置文件.

方法1:多个配置文件

/etc/init.d/Nginx会做类似的事情:

MyIP=`# some code to get my ip address or local ID`
Nginx -c $PATH_TO_Nginx/${MyIP}.conf

通过这种方式,您可以将相同的文件同步到每个人,但每个服务器只会引用自己的配置文件.

方法2:在服务启动/重启时动态更新配置文件

MyIP=`# some code to get my ip address or local ID`
updateconfig($MyIP,$TEMPLATECONfig,$LOCALCONfig) # Some function which will take a template config distributed out and replace the IP-PLACEHOLDERS with the Box's actual IP address
Nginx -c $PATH_TO_Nginx/$LOCALCONfig

通过这种方式,您只需管理一个配置文件模板,该模板在重新启动/重新加载时自我更新.

如果您还不需要Puppet / config管理的额外复杂性,这是一种低开销的方式,并且由于配置是动态的,仍然允许您向​​外扩展而不必担心盒子的IP地址.但是,如果您的架构发生变化,那么配置管理将非常有用.

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...