
Inspirándome en la red Stack Overflow, ahora estoy obsesionado con HAProxy y trato de usarlo yo mismo.
Por el momento, cada caja HAProxy tiene dos tarjetas de red (bueno, dos configuradas, puedo tener un máximo de 4 y no estaba seguro si necesitaban la suya propia para la gestión entre las cajas).
En ambas máquinas, la de backend (eth1) es una IP privada que va a un conmutador conectado a los servidores web, y la frontal (eth0) tiene una IP pública de Internet que se enruta directamente.
Además, he creado una IP virtual adicional para eth0 llamada eth0:0
que tiene una tercera dirección IP pública.
Casi entiendo cómo usarlo para equilibrar la carga entre múltiples servidores web que están detrás de él, pero no logro equilibrar la carga entre los dos cuadros HAProxy; parecen luchar por la IP virtual, pero esto no parece ser una solución inteligente.
Ahora, al usar la dirección IP virtual compartida, esta solución parece funcionar y parece brindarme el máximo tiempo de actividad, pero, ¿es esta la forma correcta de hacerlo o existe una forma más inteligente?
He estado mirando otros paquetes de Linux como keepalived, pero solo he estado usando Linux (servidor) durante una semana y estoy al límite de mi comprensión.
¿Hay alguien que haya hecho esto antes y pueda recomendarme algo para lograr el máximo tiempo de actividad?
Respuesta1
Si desea equilibrar la carga del tráfico entre dos haproxies diferentes, necesita tener otro equilibrador de carga delante de ellos y eso no será útil.
Si desea mayor disponibilidad, ya la obtuvo usando dos haproxies y VIP asignado a uno de ellos mediante keepalived o heartbeat. Por lo general, esta es la solución a los problemas de HA y equilibrio de carga.
Se me ocurre una forma de utilizar dos haproxies al mismo tiempo. Puede configurar keepalived para asignar un VIP a cada servidor haproxy. El equilibrio de carga se puede realizar mediante DNS. El nombre DNS debería resolverse en los dos VIP. Cuando falla un haproxy, el otro nodo retendrá los dos VIP y recibirá todo el tráfico.