Answers:
您想要的是主动+被动设置。这是nginx conf片段的示例,可以助您一臂之力:
upstream backend {
server 1.2.3.4:80 fail_timeout=5s max_fails=3;
server 4.5.6.7:80 backup;
}
server {
listen 80;
server_name whatevs.com;
location / {
proxy_pass http://backend;
}
}
因此,“通常”,所有请求将转到主机1.2.3.4。如果我们在那个盒子上遇到了三个故障,那么4.5.6.7将接手。
扩展chrskly的答案,您可能需要配置3个标志/配置。
在以下GRPC示例中,如果无法在7秒钟内连接主服务器,则切换到备份并将主服务器标记为关闭6000秒:
upstream grpcservers {
server 192.168.0.XX:9997 fail_timeout=6000s max_fails=1; # After 1 fail in 6000s, Main server is marked unavailable for 6000s.
server 192.168.0.XX:9999 backup;
}
location / {
grpc_pass grpc://grpcservers;
grpc_connect_timeout 7s; # If conn cant be made in 7sec, switch to backup
}