我有一个非常好的nginx设置。 我正在使用上游块在两台服务器之间进行负载平衡。 即使服务器无法处理请求,这些服务器也会提供HTTP 200响应,但是它们会设置自定义http头,如下所示:
X-Response-Status: Failed
当回答是确定的,他们给:
X-Response-Status: OK
是否有可能configurationnginx尝试下一个上游服务器,而第一个给“X-Response-Status:失败”?
我的意思是像下面的nginxconfiguration:
proxy_next_upstream error timeout http_* ($sent_http_x_response_status="Failed")
谢谢!
UPDATE1:
我必须保持上游服务器给HTTP 200甚至在错误,因为在二进制forms的http正文中有一个错误消息。
如果没有上游服务器能够提供请求,我必须将这个二进制错误传递给客户端。
proxy_next_upstream无法实现您描述的行为。
如果您的应用程序无法真正处理请求,则不应返回HTTP 200 。 让应用程序返回一个更合适的错误,如500或503 。