Расширяя ответ chrskly, вы можете настроить 3 флага / конфига.
- fail_timeout : общее время неудачных попыток, а также пометить сервер как DOWN для того же времени. Если 5 секунд, то будет предпринята попытка max_fail в течение 5 секунд, а если попытка не удастся, пометьте этот сервер как DOWN на 5 секунд.
- max_fail : максимальное количество попыток
- proxy_connect_timeout : время ожидания соединения.
В следующем примере 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
}