Configuring nginx to retry a single upstream server

Илья Шипицин chipitsine на gmail.com
Пт Май 21 08:34:58 UTC 2021


есть несколько лайфхаков, которые упрощают жизнь, когда у вас единственный
бекенд (но ответа на ваш вопрос у меня нет)

1) можно, и пожалуй, нужно указывать max_fails=0 (чтобы не держать бекенд в
грейлисте, а максимально пытаться отправлять на него запросы)

2) можно продублировать бекенд несколько раз, как будто у вас несколько
серверов, это позволяет улучшить ситуацию, когда деградировала сеть между
балансером и бекендом, тогда timeout while connecting будет переотправлен
на якобы следующий бекенд

пт, 21 мая 2021 г. в 02:05, Gena Makhomed <gmm на csdoc.com>:

> Здравствуйте, All!
>
> Есть nginx, который проксирует запросы на единственный бекенд php-fpm.
> Во время перезапуска php-fpm клиентам сразу сыпятся 5хх ошибки.
>
> Каким образом можно настроить nginx так, чтобы он в случае ошибки
> связи с бекендом пытался достучаться до него в течении N секунд
> (например, 30 сек), с интервалом, например, в K секунд
> (например, 0.1 сек) ?
>
> Тогда клиент вместо сообщения про ошибку видел бы просто небольшое
> замедление ответа сервера на секунду или максимум несколько секунд,
> что гораздо лучше, чем мгновенный возврат сообщения про ошибку 5хх.
>
> Может быть как-то с помощью njs или nginx-module-perl или с помощью
> ngx_http_upstream_module это можно сделать? Или тут единственно
> возможный вариант - писать патч на С для решения этой задачи?
>
> --
> Best regards,
>   Gena
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20210521/26eae2e4/attachment.htm>


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