Linux Labs

Практики SRE: SLO, инциденты, отказоустойчивость / Ступень 7 из 8

Балансировщик и проверка здоровья

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 5 из 10 · на машине · 5 мин

Медленная копия

Копия может принять соединение и долго молчать. Здесь — сколько nginx её ждёт.

Подключения и ответа копии nginx ждёт по своим тайм-аутам, оба по умолчанию 60s:

  • proxy_connect_timeout — сколько ждать подключения к копии;
  • proxy_read_timeout — сколько ждать ответа подключённой копии: паузы между порциями данных.

Копия, которая отвечает за 30 секунд, принимает подключение сразу, а ответа nginx ждёт до 60 секунд — и каждый клиент, попавший на неё, ждёт вместе с ним. Истёк тайм-аут — это неудача timeout: nginx отправит запрос следующей копии и выключит медленную на fail_timeout. Тайм-аут ставят больше обычного времени ответа приложения: слишком короткий выключит здоровую копию на тяжёлом запросе.

Сайт теперь стоит на трёх копиях, и здоровая из них одна. Какая чем больна, покажут запросы с %header{x-upstream} в curl -w и журнал балансировщика.

Упражнение · сделать

Сайт на трёх копиях

Теперь у сайта три копии: 8081, 8082 и 8083 (/etc/nginx/sites-available/lb). Сделай так, чтобы каждый запрос к http://localhost/ получал 200 быстрее чем за 5 секунд. Копии не трогай и из upstream не убирай: их чинят разработчики, после починки копия должна снова получать запросы без правки nginx.

Войти и начать Машина доступна после входа

Цели · 0 из 2

  • Получать 200 на каждый запрос быстрее 5 секунд ещё не выполнена
  • Оставить три копии в upstream как есть ещё не выполнена

Цели шага

0 из 2
  • Получать 200 на каждый запрос быстрее 5 секунд — ещё не выполнена
  • Оставить три копии в upstream как есть — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 2
  • Получать 200 на каждый запрос быстрее 5 секунд — ещё не выполнена
  • Оставить три копии в upstream как есть — ещё не выполнена
Загрузка…