load balancer backend failed condition
tolikkk
nginx-forum at nginx.us
Thu Mar 28 08:57:29 UTC 2013
Добрый день.
Имеется nginx версии 1.2.7. Использую его в качестве HTTP-балансировщика с
модулем upstream (HttpUpstreamModule).
Кусок конфига:
upstream lb_units {
server app01:51001 max_fails=3 fail_timeout=30s;
server app01:51002 max_fails=3 fail_timeout=30s;
server app02:51001 max_fails=3 fail_timeout=30s;
server app02:51002 max_fails=3 fail_timeout=30s;
}
server {
listen 51000;
server_name localhost;
location / {
proxy_pass http://lb_units;
}
}
На основе чего server помечается, как недоступный и на него перестают
направляться запросы?
В документации сказано "If an error occurs when communicating with the
server, a request will be passed to the next server". Достаточным условием
работоспособности является факт установки TCP-соединения на server:port?
Собственно мой вопрос - можно ли прикрутить какую-то прикладную логику к
проверке доступности backend-серверов? Я хотел бы отправлять вполне
конкретный POST-запрос и уже на основе разбора полученного ответа принимать
решение надо ли помечать backend-сервер, как failed - подскажите пожалуйста,
такое возможно? Если да - где можно почитать описание и примеры?
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,237866,237866#msg-237866
Подробная информация о списке рассылки nginx-ru