Nginx 多实例
Nginx multiple instances
我有一个带有 AWS 的 EC2 实例,我已经安装了 nginx 并创建了多个服务器块来为多个应用程序提供服务。
但是,如果 nginx 宕机,所有应用程序也会宕机。
有没有办法为每个应用程序设置单独的 nginx 实例?因此,如果一个 nginx 实例宕机,不会影响其他实例。
是的,在同一台服务器上安装 2 个 nginx 实例在技术上是可行的,但我会采用其他方式。
1 - 您可以创建多个 EC2 实例。这种方法的缺点是,根据您想要的实例数量,维护起来可能会变得更加困难。
2 - 您可以使用 Docker 或其任何替代方法来创建容器并解决此问题。您可以根据需要创建任意数量的容器并完全独立的 nginx 实例。尽管 docker 学习起来很简单,而且很快就会开始使用它,但这种方法的缺点是您需要付出一些努力来学习它,并且您的主要 EC2 实例需要有足够的资源在容器之间共享.
希望对您有所帮助!
您正在寻找的冗余类型在实践中通常由负载平衡器或反向代理提供。有很多方法可以在架构上实现这一点,但一般来说看起来像这样;
运行 具有相同服务器定义的多个 nginx 实例,以及像 haproxy 这样的平衡器。这允许平衡器检查哪些 nginx 实例在线并依次向每个实例发送请求。然后,如果一个实例出现故障,或者编排器启动了一个新实例,请求只会发送到在线实例。
如果需要更多地分发请求,您可以为每台服务器配备 nginx 实例,并使用针对每个实例或节点的反向代理。
如果这样做,nginx 可能会有一些开销,并且您的 nginx 以后可能很难维护,因为有很多 nginx 实例。前任。如果你需要更新或添加一些模块,那就更难了。
如果您尝试使用 EC2 自动缩放组,即使是最小 1 个和所需的 1 个又如何?这样,如果当前实例出现故障,它将自动启动一个新实例。
如果您需要保留一些设置,比如您的EC2的elastic ip,您可以尝试搜索EC2实例恢复。与自动缩放组不同,它将恢复您的设置。
但是如果你使用像 ALB 这样的负载均衡器并且至少使用 2 个实例会更好。使用 ALB 也会使您更加安全。您可能还想阅读有关 ALB 目标组的信息。它将为您提供有关如何解决当前问题的更多选择。
如果可以用ELB代替nginx。这会更方便,但如果 ELB 不适合你。 nginx 已经支持 High Availability 模式来避免你提到的单点故障问题
它被正式记录在这里
https://www.nginx.com/products/nginx/high-availability/
这比为每个应用程序配备一台 nginx 机器要好得多,并且可以提供更多的可用性
我有一个带有 AWS 的 EC2 实例,我已经安装了 nginx 并创建了多个服务器块来为多个应用程序提供服务。
但是,如果 nginx 宕机,所有应用程序也会宕机。
有没有办法为每个应用程序设置单独的 nginx 实例?因此,如果一个 nginx 实例宕机,不会影响其他实例。
是的,在同一台服务器上安装 2 个 nginx 实例在技术上是可行的,但我会采用其他方式。
1 - 您可以创建多个 EC2 实例。这种方法的缺点是,根据您想要的实例数量,维护起来可能会变得更加困难。
2 - 您可以使用 Docker 或其任何替代方法来创建容器并解决此问题。您可以根据需要创建任意数量的容器并完全独立的 nginx 实例。尽管 docker 学习起来很简单,而且很快就会开始使用它,但这种方法的缺点是您需要付出一些努力来学习它,并且您的主要 EC2 实例需要有足够的资源在容器之间共享.
希望对您有所帮助!
您正在寻找的冗余类型在实践中通常由负载平衡器或反向代理提供。有很多方法可以在架构上实现这一点,但一般来说看起来像这样;
运行 具有相同服务器定义的多个 nginx 实例,以及像 haproxy 这样的平衡器。这允许平衡器检查哪些 nginx 实例在线并依次向每个实例发送请求。然后,如果一个实例出现故障,或者编排器启动了一个新实例,请求只会发送到在线实例。
如果需要更多地分发请求,您可以为每台服务器配备 nginx 实例,并使用针对每个实例或节点的反向代理。
如果这样做,nginx 可能会有一些开销,并且您的 nginx 以后可能很难维护,因为有很多 nginx 实例。前任。如果你需要更新或添加一些模块,那就更难了。
如果您尝试使用 EC2 自动缩放组,即使是最小 1 个和所需的 1 个又如何?这样,如果当前实例出现故障,它将自动启动一个新实例。
如果您需要保留一些设置,比如您的EC2的elastic ip,您可以尝试搜索EC2实例恢复。与自动缩放组不同,它将恢复您的设置。
但是如果你使用像 ALB 这样的负载均衡器并且至少使用 2 个实例会更好。使用 ALB 也会使您更加安全。您可能还想阅读有关 ALB 目标组的信息。它将为您提供有关如何解决当前问题的更多选择。
如果可以用ELB代替nginx。这会更方便,但如果 ELB 不适合你。 nginx 已经支持 High Availability 模式来避免你提到的单点故障问题 它被正式记录在这里 https://www.nginx.com/products/nginx/high-availability/ 这比为每个应用程序配备一台 nginx 机器要好得多,并且可以提供更多的可用性