Nginx多实例

Nginx多实例,nginx,webserver,multiple-instances,Nginx,Webserver,Multiple Instances,我有一个带有AWS的EC2实例,我安装了nginx并创建了多个服务器块来为多个应用程序提供服务 但是,如果nginx宕机,所有应用程序也会宕机 有没有办法为每个应用程序分别设置nginx实例?因此,如果一个nginx实例宕机,它不会影响其他实例。是的,从技术上讲,在同一台服务器上安装两个nginx实例是可能的,但我会用另一种方法 1-您可以创建多个EC2实例。这种方法的缺点是,根据您需要的实例数量,维护可能会变得更加困难 2-您可以使用或其任何替代方法来创建容器并解决此问题。您可以创建所需的任意

我有一个带有AWS的EC2实例,我安装了nginx并创建了多个服务器块来为多个应用程序提供服务

但是,如果nginx宕机,所有应用程序也会宕机


有没有办法为每个应用程序分别设置nginx实例?因此,如果一个nginx实例宕机,它不会影响其他实例。

是的,从技术上讲,在同一台服务器上安装两个nginx实例是可能的,但我会用另一种方法

1-您可以创建多个EC2实例。这种方法的缺点是,根据您需要的实例数量,维护可能会变得更加困难

2-您可以使用或其任何替代方法来创建容器并解决此问题。您可以创建所需的任意多个容器,并创建完全独立的nginx实例。虽然docker很容易学习并立即开始使用,但这种方法的缺点是您需要花点精力来学习它,并且您的主EC2实例需要有足够的资源在容器之间共享


我希望有帮助

实际上,您所寻找的冗余类型通常由负载平衡器或反向代理提供。有很多方法可以在架构上实现这一点,但一般来说是这样的

使用相同的服务器定义运行多个nginx实例,并使用类似haproxy的平衡器。这允许平衡器检查哪些nginx实例处于联机状态,并依次向每个实例发送请求。然后,如果一个实例宕机,或者orchestrator正在调出一个新实例,那么请求只会被发送到在线实例


如果需要更大规模地分发请求,可以为每个服务器提供nginx实例,并在每个实例或节点上使用反向代理

如果这样做,nginx可能会有一些开销,而且您的nginx可能很难在以后维护,因为有很多nginx实例。如果你需要更新或添加一些模块,这将更加困难

如果您尝试使用EC2自动缩放组,即使是最小值1和所需值1,效果如何?因此,如果当前实例出现故障,它将自动启动一个新实例

如果需要保留一些设置,如EC2的弹性ip,可以尝试搜索EC2实例恢复。与自动缩放组不同,它将恢复您的设置


但如果您使用像ALB这样的负载平衡器,并且至少使用2个实例,则会更好。使用ALB也会使您更加安全。您可能还想了解ALB目标群体。它将为您提供更多解决当前问题的选项。

如果可以使用ELB而不是nginx。这将更方便,但如果ELB不适合您。nginx已经支持高可用性模式,以避免您提到的单点故障问题 这里有正式的记录
这总比为每个应用程序使用一台nginx机器和获得更高的可用性要好

您是否检查了nginx宕机的原因?您在他的用例中寻找不同的解决方案可能是对的。但我也需要在一台服务器上以不同的版本运行2个NGINX instance。(怎么)这可能?你好@Sauer,在你的情况下,我认为2号是更好的方式。再说一次:这是真的!但我只是这台现有机器上的“客人”,不能做任何我想做的事。