我使用nginx作为负载均衡器(反向代理),到目前为止一切看起来都很好。
我试图解决的问题是以某种方式使nginx了解上游后端服务器已关闭并且不向其发送请求。通过down,我真的意味着没有像那样的服务器或关机。
案例1: 2在上游定义的后端服务器,停止了正在运行的实例和1个后端应用程序。比nginx知道它已关闭并且在fail_timeout期间不会再尝试发送请求(默认为10secs) - 这没关系,已经可以接受了。
案例2: 2个后端服务器在上游定义但是1个实际运行的实例。 Nginx仍然试图平衡请求,因为它们都已经启动,并且没有将已停止(不存在)的后端标记为unhealty。在这种情况下,我收到504网关超时。
我想要实现的是让nginx像案例1一样工作,并将后端标记为不健康而不接收504网关超时。
有什么想法吗?配置选项?
答案 0 :(得分:1)
对nginx配置的更多调查将我引导到此配置行。任何人都需要;
proxy_next_upstream error timeout http_504;