当没有活动的上游时,是否可以重新加载 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;
}
出于好奇,你为什么要将两者都保留为备份?你想要实现什么,负载平衡还是故障转移容量?