Tento configurar um cluster HA com Percona xtraDB Cluster para replicação MySQL e HAproxy para balanceamento de carga.
O HAproxy funciona muito bem com o apache, quando o apache trava ou se não está respondendo, o HAproxy liga outro nó.
Meu problema começa com o MySQL, eu também configurei o MySQL no mesmo HAproxy, mas quando o MySQL não está respondendo, o HAproxy não liga outro nó. No entanto, o HAproxy vê que o MySQL não responde porque quando eu verifico as estatísticas do HAproxy, o servidor MySQL está inativo.
Minha dúvida é: é possível configurar dois recursos no HAproxy? Ele pode verificar se o Apache está ativo e ligar outro nó, se não, E verificar se o MySQL está ativo e ligar outro nó, se não?
HAproxy.conf:
[...]
frontend redmine
bind 192.168.7.149:80
reqadd X-Forwarded-Proto:\ http
default_backend redmine
frontend redmineS
bind 192.168.7.149:443 ssl crt /etc/ssl/private/quipment.fr.pem
reqadd X-Forwarded-Proto:\ https
default_backend redmine
backend redmine 192.168.7.149:80
redirect scheme https if !{ ssl_fc }
mode http
balance roundrobin
option http-server-close
timeout http-keep-alive 3000
option forwardfor
cookie PHPSESSID prefix
cookie SRVNAME insert
server xtra1 192.168.7.151:80 cookie x1 check
server xtra2 192.168.7.147:80 cookie x2 check
server xtra3 192.168.7.152:80 cookie x3 check
listen mysql-cluster 192.168.7.149:3306
mode tcp
balance roundrobin
option httpchk
server xtra1 192.168.7.151:3306 check port 9200 inter 1000 rise 3 fall 1
server xtra2 192.168.7.147:3306 check port 9200 inter 1000 rise 3 fall 1
server xtra3 192.168.7.152:3306 check port 9200 inter 1000 rise 3 fall 1
[...]
Responder1
Seu HAProxy não está testando a integridade do MySQL, pois na seção MySQL você está dizendo para fazer testes para http (com a linha option httpchk
), você deve usaropção mysql-checkentão deve ser lido como
listen mysql-cluster 192.168.7.149:3306
mode tcp
balance roundrobin
option mysql-check user a_test_user
server xtra1 192.168.7.151:3306 check inter 1000 rise 3 fall 1
server xtra2 192.168.7.147:3306 check inter 1000 rise 3 fall 1
server xtra3 192.168.7.152:3306 check inter 1000 rise 3 fall 1
E você deve ter em seu banco de dados MySQL o usuário a_test_user permitindo conexões do HAProxy.