Eu sugiro strongmente usar uma ferramenta projetada para fins de balanceamento de carga, como o haproxy. Você pode definir verificações de back-end e, assim, evitar o envio de solicitações para aplicativos indisponíveis com muita flexibilidade.
Sua solução também não é HA, já que o balanceador de carga é um SPOF (ponto único de falha). Você pode querer adicionar outra máquina e usar keepalived para failover.
O haproxy pode ser executado em qualquer porta que você desejar, você pode equilibrar diferentes tipos de tráfego, não apenas http e ao mesmo tempo configurar frontends (pontos de entrada de balanceamento de serviço) e back-ends (contêiner para instâncias de serviço e comportamento de balanceamento) . Você pode ver um exemplo aqui: link
Para a parte de failover, eu usaria keepalived. Ele verifica se o balanceador de carga ativo está disponível e faz o failover para a máquina secundária, se não estiver, flutuando seus endereços IP virtuais.
Você pode verificar este link para um exemplo: link