当没有活动上游时,让 nginx 使用备份上游重新加载

当没有活动上游时,让 nginx 使用备份上游重新加载

当没有活动的上游时,是否可以重新加载 nginx,换句话说,如果没有活动的上游,nginx 应该自动将调用路由到备份上游。

正常配置 ->

upstream myproject {
    server 127.0.0.1:8000;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002 backup;    
    server 127.0.0.1:8003 backup;
}

我希望能够重新加载 nginx 之类的东西 ->

upstream myproject {
    server 127.0.0.1:8002 backup;    
    server 127.0.0.1:8003 backup;
}

目前,nginx 会抛出错误,说在上述上游块中未找到上游地址。

更新 - 我想让 nginx 变得智能。比如说,8000/8001 端口位于一个 dc,8002/8003 端口位于第二个 dc。如果第一个 dc 框不可用,nginx 应该自动将流量路由到第二个 dc

答案1

备份标志表示当主服务器未发送响应时,应使用它,从官方上游模块文档

备份:将服务器标记为备份服务器。当主服务器不可用时,它将传递请求。

只需删除备份 第一个服务器的标志,否则您没有定义主服务器

upstream myproject {
    server 127.0.0.1:8002;    
    server 127.0.0.1:8003 backup;
}

出于好奇,你为什么要将两者都保留为备份?你想要实现什么,负载平衡还是故障转移容量?

相关内容