Eu vi postagens semelhantes para o meu problema, mas nenhuma delas parece ser relevante para o meu caso. Eu tive meu HAproxy configurado para os últimos 3 meses aproximadamente o mesmo e não encontrei nenhum problema. O servidor era protegido por dois firewalls e era impedido de acessar pela internet (FW configurado para permitir acesso http / s do meu IP do HQ). Na semana passada eu abri para o mundo, fiz muitos testes de estresse e tudo parecia ok. Umas duas horas APÓS meus testes terem sido feitos, meu servidor de front-end não respondeu, nem mesmo a página de estatísticas pôde ser carregada.
A verificação do meu sistema de monitoramento não mostrou alta CPU, RAM ou largura de banda. Embora a página de estatísticas não carregasse, monitorei a página de estatísticas de um sistema de monitor SNMP e vi que o máximo de conexões simultâneas para todo o servidor HAproxy era ~ 700, nem mesmo perto do maxconn global 10000 (fullconn é 10000 também).
Reiniciar o serviço HAproxy resolveu o problema temporariamente, pois o problema ressurgiu algumas horas depois.
Eu atualmente tenho o HAproxy 1.5.3 instalado e embora eu tenha lido o link Não tenho certeza se esse problema foi resolvido em versões posteriores.
Qualquer assistência com esse problema será mais do que bem-vinda.
Aqui está minha configuração:
global
log 127.0.0.1 local0
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 10000
user haproxy
group haproxy
daemon
tune.ssl.default-dh-param 2048
stats socket /etc/haproxy/haproxysock level admin
stats socket /var/run/haproxy.stat mode 666
#---------------------------------------------------------------------
Defaults
#---------------------------------------------------------------------
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 5s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 10000
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend main
bind *:80
bind site1.app.company.com:443 ssl crt /etc/haproxy/ssl/app/apppublic.pem no-sslv3
bind site2.company.com:443 ssl crt /etc/haproxy/ssl/public.pem no-sslv3
bind site3.company.net:443 ssl crt /etc/haproxy/ssl/net.pem no-sslv3
redirect scheme https code 301 if !{ ssl_fc }
acl rule1 hdr_dom(host) -i site1.app.company.com
use_backend site1 if rule1
acl rule2 hdr_dom(host) -i site2.company.com
use_backend site2 if rule2
acl rule3 hdr_dom(host) -i site3.company.net
use_backend site3 if rule3
default_backend site1
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend site1
mode http
fullconn 10000
balance roundrobin
option httpclose
option forwardfor
cookie SERVERID insert indirect nocache
server Server1 1.1.1.1:443 cookie A check ssl verify none
server Server2 2.2.2.1:443 cookie B check ssl verify none
backend wwwsest
mode http
fullconn 10000
balance roundrobin
option httpclose
option forwardfor
cookie SERVERID insert indirect nocache
http-request add-header X-Forwarded-Proto https if { ssl_fc }
http-request set-header X-Forwarded-Port %[dst_port]
server Server1 1.1.1.2:443 cookie A check ssl verify none inter 3000 fall 2 rise 2
server Server2 2.2.2.2:443 cookie B check ssl verify none inter 3000 fall 2 rise 2
backend internalst
mode http
fullconn 10000
balance roundrobin
option httpclose
option forwardfor
cookie SERVERID insert indirect nocache
http-request add-header X-Forwarded-Proto https if { ssl_fc }
http-request set-header X-Forwarded-Port %[dst_port]
server Server1 10.0.0.1:443 cookie A check ssl verify none inter 3000 fall 2 rise 2
server Server2 10.0.0.2:443 cookie B check ssl verify none inter 3000 fall 2 rise 2
#Statistics server:
listen stats *:1936
bind *:1936 ssl crt /etc/haproxy/ssl/app/apppublic.pem
stats enable
stats uri /
stats hide-version
stats refresh 30s
stats auth admin:********
Tags haproxy