我在3台不同的主机上作为反向代理运行nginx。DNS将production.example.com解析为所有3台主机的IP地址。因此,如果没有可用的主机,我就有某种类型的负载平衡和回退。
每个主机都在运行几个码头集装箱。其中一些在所有三个主机上运行,有些只在两个甚至一个主机上运行。
利用nginx's proxy_pass,我将所有请求转发到容器的内部名称(我使用Rancher,因此每个容器都可以通过container_name.stack_name通过内部DNS访问)。
有时,容器不可用或不响应,因此nginx返回一个错误502。
有什么办法让这件事自动退却吗?不幸的是,nginx忽略了内部Docker容器名称的所有其他解析地址,因此不会将请求转发到不同的地址。
发布于 2017-10-24 10:27:01
您应该使用代理_下一首_上游指令
指定在何种情况下应将请求传递给下一个服务器。
location / {
proxy_pass http://backends;
proxy_next_upstream error timeout http_502;
}https://serverfault.com/questions/879974
复制相似问题