Для backup
директива, документация Nginx состояния довольно минимально:
отмечает сервер как резервный сервер. Запросы будут передаваться, когда основные серверы недоступны.
Что если у вас есть несколько резервных копий и основной сервер выходит из строя, назначена ли одна из резервных копий новым основным? Или между ними будет Nginx Round Robin?
Контекст:
У меня есть основной сервер и несколько резервных копий, но все подключения всегда должны идти к одному и тому же основному или резервному. Вроде как ip_hash режим балансировки нагрузки, за исключением того, что он должен использовать тот же сервер для все связи и клиенты.
Хотя он не поддерживает серверы с несколькими резервными копиями в контексте, как ответил @Alberto Mendoza -
если вы размещаете резервные копии на другом VPS с балансировщиком нагрузки NGINX в его собственные резервные копии ... это работа, которую я в настоящее время использую для мультирегиональной сети.
upstream routing {
server main_server:8080 max_fails=2 fail_timeout=5;
server backupServer1:8080 max_fails=1 fail_timeout=5;
server backupServer2:8080 backup;
}
если ваш основной сервер не отвечает в течение 2 сбоев - он попытается сделать вашу первую резервную копию VPS - если по какой-то нечетной причине это DDOS или по какой-либо причине также не работает - он перейдет на ваш третий VPS .. Вы можете продолжить подключите последовательно по мере необходимости.
Я сделал тест и кажется что nginx
не поддерживает серверы с несколькими резервными копиями.
upstream a {
server main_server:8080 max_fails=2 fail_timeout=5;
server backup1:8080 backup;
server backup2:8080 backup;
}
Когда бы ни main_server:8080
не работает, backup1:8080
отвечает правильно. когда main_server:8080
и backup1:8080
не работают, в соединении отказано, и он никогда не backup2:8080
.