Estou tentando configurar um balanceador de carga HTTP muito simples com backends node.js no CentOS 7. Os back-ends são todos servidores HTTP.
Se eu definir o backend para escutar na porta 80 e o HAProxy para escutar na porta 80 e usar a porta 80 no backend, tudo funciona bem. É assim que o arquivo de configuração aparece em tal configuração:
global
log 127.0.0.1 local2 info
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 256
user haproxy
group haproxy
daemon
defaults
mode http
log global
option httplog
timeout connect 10s
timeout client 30s
timeout server 30s
frontend http-in
bind :80
default_backend backend_servers
option forwardfor
backend backend_servers
balance roundrobin
server backend1 10.0.4.51:80 check
# server backend2 10.0.4.52:80 check
# server backend3 10.0.4.53:80 check
# server backend4 10.0.4.54:80 check
# server backend5 10.0.4.55:80 check
# server backend6 10.0.4.56:80 check
Mas, se eu alterar todas as portas para dizer 8124, o HAProxy mostrará o seguinte erro na inicialização:
haproxy[3324]: backend backend_servers has no server available!
É assim que a nova configuração se parece
global
log 127.0.0.1 local2 info
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 256
user haproxy
group haproxy
daemon
defaults
mode http
log global
option httplog
timeout connect 10s
timeout client 30s
timeout server 30s
frontend http-in
bind :8124
default_backend backend_servers
option forwardfor
backend backend_servers
balance roundrobin
server backend1 10.0.4.51:8124 check
# server backend2 10.0.4.52:8124 check
# server backend3 10.0.4.53:8124 check
# server backend4 10.0.4.54:8124 check
# server backend5 10.0.4.55:8124 check
# server backend6 10.0.4.56:8124 check
Certamente, o programa backend node.js agora está escutando na porta 8124.
O firewall está aberto para a porta 8124 no backend e o seguinte comando:
wget http://10.0.4.51:8124/action
funciona perfeitamente com o balanceador de carga, o que indica que o balanceador de carga pode, de fato, acessar o back-end.
Nessas circunstâncias, o HAProxy parece ter falhado ao iniciar, pois não consigo ver a porta 8124 no estado LISTEN
quando uso netstat -an
.
Esta é a primeira vez que estou usando o HAProxy, então posso estar perdendo algo realmente trivial.
Há mais alguma coisa que eu deva verificar?