ниже приведенной конфигурации указано если прилетает  код ответа который начинает на 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 и заработало... хммм
Обсуждают сегодня