Eu tenho essa configuração do HAProxy e, como você pode ver, tenho muitas coisas duplicadas em backend
s. Existe uma maneira de se livrar de duplicações como stats
?
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
daemon
maxconn 2000
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
acl url_a path_reg ^\/a$|\/a\/
use_backend webservers_a if url_a
acl url_b path_reg ^\/b$|\/b\/
use_backend webservers_b if url_b
default_backend webservers_main
backend webservers_main
mode http
stats enable
stats auth admin:admin
stats uri /haproxy?stats
balance roundrobin
option httpchk
option forwardfor
option http-server-close
server web1 192.168.50.21:80 maxconn 32 check
backend webservers_a
mode http
stats enable
stats auth admin:admin
stats uri /haproxy?stats
balance roundrobin
option httpchk
option forwardfor
option http-server-close
server web2 192.168.50.22:80 maxconn 32 check
backend webservers_b
mode http
stats enable
stats auth admin:admin
stats uri /haproxy?stats
balance roundrobin
option httpchk
option forwardfor
option http-server-close
server web3 192.168.50.23:80 maxconn 32 check
Você pode adicionar algo como o seguinte à sua configuração:
Estou assumindo os seguintes pontos:
Você não quer expor o seu
stats
ao público. Se não for esse o caso, basta mover suas estatísticas para afrontend
diretiva existente.Substitua
${PRIVATE_IP}
por um IP privado disponível em sua máquina (ou configure um para isso) e${PORT}
por uma porta não utilizada, por exemplo8080
.Advertência: se você usar uma porta diferente
80
da diretiva stats, terá que chamar suastats
página especificando a porta no arquivourl
. Para prevenir e contornar isso:frontend
a${PUBLIC_IP}:80
e sualisten stats
seção a${PRIVATE_IP}:80
.