nginx 上游配置在两个服务器之间来回切换

nginx 上游配置在两个服务器之间来回切换

我有一个旧版 Web 应用程序,它有时会崩溃。此外,它有一个应用程序缓存,驻留在应用程序本身的虚拟空间中 - 它无法与同一应用程序的其他实例共享缓存数据,我无法进行所需的修改。

该应用程序有点不稳定,有时会崩溃,需要一些时间才能恢复。我想要的是启动应用程序的两个实例,例如 A 和 B,然后让 nginx 完成其余工作。我想要的是:

启动后,A 将仅作为主服​​务器(即使 A 和 B 都已启动并运行,所有请求也应仅发送到 A!)。当 A 崩溃时,nginx 应仅切换到 B。当 A 恢复且 B 仍可工作时,nginx 应仍继续仅使用 B。也就是说,直到 B 也崩溃!之后,它应再次切换到 A 并使用它,即使 B 恢复并再次可用。也就是说,直到 A 崩溃......好吧,我想你明白了 =)

“备份”指令似乎不是我想要的,并且所有其他变体似乎只是调整在两个上行服务器上分配请求的方法,而没有任何方法可以暂时阻止来自其中一个或另一个的请求(没有“禁用”的原因)。

仅通过 nginx 配置是否无法实现这一点,或者我丢失了一些东西?

UPD:我现在正在考虑在失败时尝试使用 ngx_lua 模块中的 set_peer_down (请参阅此处的文档),但似乎是对一个简单问题的复杂解决方案......没有一些程序化的解决方案就不可能做到吗?

相关内容