Sim - eu acho que você tem o básico para baixo pat:
O que é o HAProxy:
É o proxy - e apenas um proxy que funciona com qualquer coisa baseado em TCP - não apenas HTTP. Não serve arquivos - simplesmente apenas proxies.
Por que o HAProxy:
O HAProxy vem com muitos algoritmos de balanceamento de carga, incluindo uma estratégia de “menos conexões” que seleciona o back-end com o menor número de conexões pendentes.
Os back-ends podem ser verificados com sanidade e integridade por URL para evitar solicitações de roteamento para back-ends danificados por computador. (Pode até escalonar essas verificações para evitar picos).
Uma página de status dedicada oferece status de back-end, tempo de atividade e muitas métricas muito interessantes. As solicitações podem ser roteadas com base em todos os tipos de coisas: cookies, substrings de URL, IP do cliente, etc.
Como configurar o HAProxy:
listen app_a_proxy 127.0.0.1:8100
# - equal weights on all servers
# - queue requests on HAPRoxy queue once maxconn limit on the appserver is reached
# - minconn dynamically scales the connection concurrency (bound my maxconn) depending on size of HAProxy queue
# - check health of app. server every 20 seconds
server a1 127.0.0.1:8010 weight 1 minconn 3 maxconn 6 check inter 20000
server a1 127.0.0.1:8010 weight 1 minconn 3 maxconn 6 check inter 20000
listen app_b_proxy 127.0.0.1:8200
# - second cluster of servers, for another app or a long running tasks
server b1 127.0.0.1:8050 weight 1 minconn 1 maxconn 3 check inter 40000
server b2 127.0.0.1:8051 weight 1 minconn 1 maxconn 3 check inter 40000
server b3 127.0.0.1:8052 weight 1 minconn 1 maxconn 3 check inter 40000