Переходит ли nginx к следующему хосту в восходящем блоке, если предыдущий хост недоступен или не существует?
upstream cache_cluster {
127.0.0.1:9000; //something on this port
127.0.0.1:11211; //memcached instance on this port
}
location {
//..some code here
memcached_pass cache_cluster;
error_page 404 502 504 = @something;
}
upstream предоставляет только список серверов и какой-то вес. Чтобы указать Nginx, что делать в случае отказа одного из серверов, вам нужно контролировать это с помощью memcached_next_upstream.
memcached_next_upstream
синтаксис: memcached_next_upstream [ошибка | тайм-аут | invalid_response | not_found | выкл]
дефолт: время ожидания ошибки
контекст: http, сервер, расположение
Какие условия сбоя должны привести к переадресации запроса на другой вышестоящий сервер? Применяется только тогда, когда значение в memcached_pass является восходящим потоком с двумя или более серверами.
Как указано в документации, поведение по умолчанию - ошибка / тайм-аут, которого в большинстве случаев должно быть достаточно.