在nxinx中依次尝试两个反向代理?

我想通过nginx反向代理服务器,并基于响应(例如, 4xx )将请求转发到第二个代理。 所以当一个请求进入时,nxinx把它传递给第一个。 如果第一个给出了一个非错误响应,那么它应该正常返回。 如果它返回一个错误,那么nginx应该把它发送到第二个并返回该响应。

从粗略的阅读文档,我不认为我可以通过configuration来做到这一点。 我可以写一个nginx扩展来做到这一点,但我想我会问,如果有可能没有编写额外的代码。

我不认为你所说的标准configuration是可能的。 我不认为有办法拦截回应,并有条件地重新处理它。

而且,即使你编写了一个模块,延迟也是一个问题。 您需要在后端进行2次往返才能将数据发送到客户端。

我知道你问了Nginx,但Varnish有方法来重新处理来自后端的请求。 请参阅varnish-cache.org/trac/wiki/VCLExampleRestarts