Era o backend, e consegui apontar o que estava acontecendo depois de adicionar um %ts
(termination_state) no log-format
para poder validar que o backend estava indisponível.
Ontem, por cerca de 10 minutos, meu haproxy serviu um lote de 503 páginas (diretamente de errorfile 503 /etc/haproxy/errors/503.http
) e não sei por quê. Não tenho verificações de integridade para meus backends, então, com certeza, elas não foram marcadas como desativadas. A página de estatísticas não mostra que um limite foi atingido (nas áreas vermelhas marcadas).
global
maxconn 20000
tune.ssl.default-dh-param 2048
daemon
...
defaults
log global
mode http
timeout http-request 30s
option httplog
option dontlognull
timeout connect 5s
timeout server 120s
timeout client 30s
...
frontend frontend_for_all_sites
maxconn 20000
mode http
bind *:80
option http-buffer-request
timeout http-request 30s
...
use_backend www_backend if acl_hostname_www
use_backend static_backend if acl_hostname_static
backend www_backend
option forwardfor
server www localhost:9090 maxconn 5000
backend static_backend
option forwardfor
server s localhost:9090 maxconn 5000
Onde devo olhar em seguida para descobrir por que isso aconteceu?
Você definiu default_backend
?
Se
use_backend www_backend if acl_hostname_www
use_backend static_backend if acl_hostname_static
falha, não há back-end padrão, portanto 503