Как ускорить переключение апстримов?

Eugene Chaykin eugene.chaykin на i-a-t.net
Пт Сен 22 12:02:32 UTC 2017


Добрый день.

Пытаюсь настроить фэйловер с помощью nginx.
У меня есть два абсолютно аналогичных апстрима.

Хочется получить балансировку нагрузки и фэйловер, если один из 
апстримов по каким-либо причинам отвалится.

Сейчас nginx у меня настроен так:

upstream cdn {
     least_conn;
     server     1.1.1.1:80;
     server     2.2.2.2:80;
}

server {
     listen 3.3.3.3:80;
     server_name cdn.mysite.com;
     proxy_next_upstream error timeout invalid_header http_500 http_502 
http_503 http_504;
…

Пока оба апстрима работают — всё ок, скорость загрузки страницы
примерно 0.5 сек.

Стоит выключить один из них и скорость резко падает, примерно до минуты.

Пробовал прописывать max_fails=1 fail_timeout=30s, но особого эффекта не 
ощутил.
Если в конфиге к отключенному апстриму дописать down, то всё снова 
работает быстро.

Вопрос: ЧЯДНТ и как добиться нормального фэйловера?

--
С уважением,
Евгений


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