Nginx – 多个服务器配置

前端之家收集整理的这篇文章主要介绍了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地址.但是,如果您的架构发生变化,那么配置管理将非常有用.

原文链接:https://www.f2er.com/nginx/435272.html

猜你在找的Nginx相关文章