Re: max_fails=0 и no live upstreams while connecting to upstream

Maxim Dounin mdounin на mdounin.ru
Чт Апр 12 15:27:45 UTC 2018


Hello!

On Wed, Apr 11, 2018 at 07:00:17PM +0200, Yury Lyakh wrote:

> Господа, подскажите пожалуйста,
> 
> В документации сказано что max_fais=0 отключает попадание апстрима в блэклист на время из-за проблем с ним.
> 
> То есть, как я понимаю постучались на бэкенд, получили 502 или еще что, отдали клиенту. И дальше стучимся на бэкенд, а не замораживаем его с сообщением в лог "no live upstreams while connecting to upstream".
> 
> 
> upstream games-storage-ru {
>   zone games-storage-ru 64k;
>   server games.syd.origin.ru <http://games.syd.origin.ru/> max_fails=0;
>   keepalive 4;
> }
> 
> 
> "46.116.106.159" "-" "-" "[11/Apr/2018:16:37:29 +0000]" "HEAD /Logo.png HTTP/1.1" "502" "0" "-" "curl/7.54.0" "169" "-" "http" "games-storage.ru <http://games-storage.ru/>" "0.000" "0.000" "99" "-" "[fr5]" "MISS" "0" "games-storage-ru" "2052" "4468" "-" "-"
> 
> 2018/04/11 16:37:29 [error] 34796#34796: *672751767 no live upstreams while connecting to upstream, client: 46.116.106.159, server: games-storage.ru <http://games-storage.ru/>, request: "HEAD /Logo.png HTTP/1.1", upstream: "http://games-storage-ru/Logo.png <http://games-storage-ru/Logo.png>", host: "games-storage.ru <http://games-storage.ru/>"
> 
> Или я что-то упустил?
> Или при max_fails=0 это сообщение чисто информационное и данный server в апстрим не блэклистится на самом деле?

Сообщение "no live upstreams..." означает, что nginx пытался 
выбрать бэкенд, но не смог, потому что все сконфигурированные 
бэкенды либо выключены, либо уже были попробованы в рамках данного 
запроса.

Обычно это сообщение не появляется, если учёт ошибок выключен, 
потому что количество попыток переключения на следующий бэкенд 
ограничено количеством бэкендов.  Однако это может быть не так в 
случае использования keepalive'а к бэкендам - попытки использования 
закэшированных соединений не учитываются, и суммарное количество 
попыток в результате может превышать общее количество бэкендов, 
приводя к сообщению "no live upstreams...", когда на все бэкенды 
уже попытались сходить.  Судя по всему у вас просходит именно это.

Какого-либо выключения бэкендов при этом не происходит, сообщение 
относится именно к конкретному запросу.

-- 
Maxim Dounin
http://mdounin.ru/


Подробная информация о списке рассылки nginx-ru