Копия может принять соединение и долго молчать. Здесь — сколько 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 как есть ещё не выполнена