我的目标是在配置中配置nginx的流对象,以将请求路由到上游的备份,以防某些运行状况检查失败(2/3)
我认为健康检查应该不是问题:
-TCP 1212可用性
-TCP 1912可用性
-HTTP GET on 7078 /?
-Response应该是200,如果我能以某种方式让身体检查它是否符合预期,那就更好了!
如果说这些检查在一个上游“集群”上失败,那么我想将请求路由到另一个相同的集群,就像备份一样。
我要解决的问题在于,服务器之间实际上相差半个半个世界,因此通过一台服务器进行负载平衡将导致与等待它失败一样的延迟。因此,尽管负载均衡器最终将具有“路由”行为,但响应时间将是不可接受的。
是否可以在NGINX配置中执行此操作,或者我将其传播得太稀疏了?
答案 0 :(得分:2)
NGINX upstream module将为您执行被动健康检查,这意味着它将对连接失败做出反应,并根据需要选择切换到备用服务器。在某种程度上,这对您来说足够了。
您在此处描述的内容都是 active health checks,可让您检查与流量端口不同的端口,声明HTTP状态,标头值甚至正文内容。不幸的是,在您面前晃来晃去的这些内容仅作为NGINX商业订阅的一部分提供,我想这并不是您想要的。
如果您确实需要这种主动的健康检查,则仍然可以从NGINX外部进行。一种方法可能是:
include
其中一个ncat
和/或curl
进行对您而言重要的测试您可以通过快速mv
切换conf来重命名与include
匹配的正确名称,而不必重写任何内容。