нода "отлетит"? будет ли nginx ходить в мёртвую ноду при такой конфигурации?
upstream gate {
server gate1-test.ru:443 max_fails=1 fail_timeout=1s;
server gate2-test.ru:443 max_fails=1 fail_timeout=1s;
server gate3-test.ru:443 max_fails=1 fail_timeout=1s;
server gate4-test.ru:443 max_fails=1 fail_timeout=1s;
server {
listen 443;
server_name gate-balancing.ru;
proxy_ssl_certificate /nginx/cert/cert.cer;
proxy_ssl_certificate_key /nginx/cert/key.key;
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
access_log /nginx/log/access.log main;
error_log /nginx/log/error.log error;
location / {
proxy_pass https://gate;
proxy_ssl_certificate /nginx/cert/client.cer;
proxy_ssl_certificate_key /nginx/cert/client.key;
}
}
@kiosaku ping)) доброго дня)
Будет, но не очень. max_fails задаёт число неудачных попыток работы с сервером, которые должны произойти в течение времени, заданного параметром fail_timeout, чтобы сервер считался недоступным на период времени, также заданный параметром fail_timeout. Соотвественно если за 1s будет 1 неудачная попытка, то сервер на 1s пометится как недоступный. Ну и следует иметь в виду, что это пассивные проверки, nginx не проверяет доступность серверов, он ориентриуется на его ответы.
а, тут понял, спасибо, а по опыту fail_timeout на сколько лучше ставить в нагруженной системе?
Надо тестировать и самому разбираться. Мне подходят max_fails = 5 и fail_timeout = 60s Но всё сильно зависит от траффика, окружения и требований. Поднимите тестовую среду, запустите ab или yandex.tank и шатайте бэки, тогда точно будет ясно.
да я обычно так и делаю))) без тестирования никуда ) но помнится ошибки у меня всё же проскакивали, когда я 1000 запросов зарядил, по 4 запроса в секунду
Они и будут проскакивать. Это ПАССИВНЫЕ проверки. Пока запрос клиента не попадёт на сломанный бэк и nginx не увидит, что бэк не может ответить, он не исключит его.
тут понятно, спасибо за помощь
Обсуждают сегодня