Atualização 2017-09-13: O SNI tornou-se predominante o suficiente nos navegadores principais para que possa ser usado para atender à solicitação, e essa resposta deve ser considerada desatualizada.
A única maneira de suportar isso é ter um IP para cada um de seus clientes. Quando você se conecta via https, a conexão é criptografada imediatamente , não há chance de o navegador dizer "Estou aqui para foo.tenantA.com". Portanto, a única maneira de o servidor saber qual certificado SSL deve ser usado para criptografar a conexão é baseada no IP em que a conexão entrou.
Agora isso ainda é possível, mas significa que você vai precisar de muitos IPs. Nós realmente fazemos essa configuração exata no meu trabalho. Temos 2 balanceadores de carga ativos / ativos, com metade dos IPs em um balanceador, a outra metade no outro balanceador (um total de cerca de 500 IPs). Então nós temos vários servidores web no back-end que levam todas as conexões. Qualquer servidor da web pode falhar e o balanceador de carga parará de enviar conexões. Ou o próprio balanceador de carga pode falhar e o outro usará todos os seus IPs.
O software de balanceamento de carga que faz isso é Pacemaker e ldirectord (ambos são projetos mainstream e qualquer distro que você execute deve tê-los em seu repositório). O próprio kernel do Linux é o que realmente faz o balanceamento de carga, o software é apenas responsável por lidar com failovers.
Observação: para balanceamento de carga, existem muitas alternativas para o directd, como keepalived e surealived . Embora para o software de failover do balanceador de carga real, o marcapasso é o que você deve usar.
Guias básicos:
-
Este fornecerá instruções básicas para obter o pacemaker configurado. Você pode ignorar todas as coisas anteriores, pois a CMAN é a sua substituta. A única coisa que você precisa fazer para chegar até esse ponto no guia é instalar o marcapasso e suas dependências. Pare na seção 8.2.4. Você não precisa ir para a seção 8.3, pois isso não é relevante para o que você está fazendo.
-
Quando o marcapasso estiver funcionando, isso fornecerá uma configuração bem básica para balancear a carga de um servidor http.
-
Você também pode consultar este e este . É mais uma visão geral de alto nível do marcapasso, o que ele faz e como usá-lo.