Мы используем 2 активных сервера haproxy за предложением Azure Load Balancer, которое затем распределяет нагрузку на наш интерфейсный веб-кластер.У нас есть такая настройка, потому что нам нужна HA на наших haproxy-серверах, и мы также используем ряд правил в haproxy для маршрутизации трафика, которые не поддерживаются ни в одном из предложений Azure.
Мы столкнулись с проблемой, когда трафикзапускает балансировщик нагрузки Azure, направляется в окно haproxy и затем отправляется на IIS для обработки, но мы никогда не получаем ответ от сервера, но я вижу, что запрос был обработан, поскольку данные были записаны в базу данных.У меня есть журнал в журналах haproxy 504, но когда я проверяю журналы IIS, ничего не регистрируется, поэтому он обрабатывается в IIS, но похоже, что соединение на каком-то этапе обрывается.
Я протестировал эту настройку без Azure Load Balancer и просто Haproxy сам по себе работает нормально, но когда мы представляем Azure Load Balancer, мы начинаем получать 504 ошибки.Кто-нибудь видел такую проблему?
haproxy.cfg
global
log 127.0.0.1 local0
maxconn 4096
user haproxy
group haproxy
tune.ssl.default-dh-param 2048
tune.maxrewrite 4096
ssl-default-bind-options no-sslv3
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
ssl-default-server-options no-sslv3
ssl-default-server-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
defaults
log global
option httplog
mode http
option dontlognull
option tcplog
retries 3
option redispatch
maxconn 20000
timeout connect 8000
timeout client 50000
timeout server 50000
frontend release-micro-http
bind :8082
reqadd X-Forwarded-Proto:\ http
default_backend release-micro-backend
backend release-micro-backend
balance roundrobin
option http-server-close
option forwardfor
option httpchk GET /check.txt
server worker1 10.1.2.1:8086 check
server worker2 10.1.2.2:8086 check