ниже приведенной конфигурации указано если прилетает код ответа который начинает на 5, то считать сервер не доступный и переключать на следующую ноду. В принципе все отрабатывает как надо, но в сам момент выключения кестрела ошибка 502 все равно прилетает и что б сработало переключение на следующую ноду надо еще раз обновить страницу. Возможно как-то достичь результата, что б оно железно фильтровало ответы и не в коем случае 502 не выдавало, а сразу редиректило на следующую ноду?
frontend www-https
bind *:443 ssl crt /etc/haproxy/certs/site.pem
http-request set-header X-Forwarded-Proto https
default_backend web-back
option forwardfor header X-Real-IP
backend web-back
redirect scheme https if !{ ssl_fc }
balance source
option httpchk
http-check expect ! rstatus ^5
server web1_10.200.2.91 10.200.2.91:80 check on-marked-down
shutdown-sessions
server web2_10.200.2.92 10.200.2.92:80 check on-marked-down
shutdown-sessions
location / { error_page 502 = @fallback; } location @fallback { proxy_pass http://backend; }
я же вчера давал ссылку на retry? Читать лень?
https://www.haproxy.com/blog/haproxy-layer-7-retries-and-chaos-engineering/
Вот вчера этот самый линк постил
оффдока наше всё)) Почти во всех случаях решает
только люди их не читают. Даже если под нос суешь.
таких прям за профнепригодность надо на мороз.
https://t.me/theaftertimes/6627
я попробовал.. но оно почему то не работает( я в бекэнд добавил option redispatch 1 retry-on all-retryable-errors retries 3 http-request disable-l7-retry if METH_POST но ошибки все равно ловлю( сработал только тот метод с httpchk httpchk тоже не идеально отрабатывает за счет интервала чека и количество чеков
поставил балансировку раундробин вместо source и заработало... хммм
Обсуждают сегодня