Доброго времени суток.
Возник вопрос по upstream и серверам с пометкой backup.
Положим существует несколько записей server в upstream помеченных как
backup и несколько не помеченных как backup, пример ниже. Вопрос - как
будет вести себя nginx?
http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html#upstream
"Если при попытке работы с сервером произошла ошибка, то запрос будет передан следующему серверу и так до тех пор, пока не будут опробованы все работающие сервера."
в смысле как он будет выбирать backup (полагаю
случайно?) и как будет выбирать следующий backup если первый backup не
ответил.
http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html#upstream
"Если при попытке работы с сервером произошла ошибка, то запрос будет передан следующему серверу"
имеется ввиду следующий сервер в конфиге
то есть вопрос по сути - как работает директива
fcgi_next_upstream с backup серверами? и ещё один впорос - как работает
директива fcgi_next_upstream с обычными серверами (не backup), если она
прошла уже по всем апстримам и не получила положительного результата:
http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html#server
"backup ? помечает сервер как запасной сервер. На него будут передаваться запросы в случае, если не работают основные сервера."
будет ли она пытаться бесконечно получить результат от серверов или
будет переключится на backup-ы?
http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html#upstream
"Если не удастся получить успешный ответ от всех серверов, то клиенту будет возвращён результат работы с последним сервером."
если переключаться на бэкапы - то что
дальше? error_page?
http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html#upstream
"Если не удастся получить успешный ответ от всех серверов, то клиенту будет возвращён результат работы с последним сервером."
upstream backend {
server 127.0.0.1:1030 max_fails=1 fail_timeout=10s;
server 127.0.0.1:1031 max_fails=1 fail_timeout=10s;
server 127.0.0.1:1032 backup max_fails=1 fail_timeout=10s;
server 127.0.0.1:1033 backup max_fails=1 fail_timeout=10s;
}