O Varnish não suporta SSL
A execução de um site / serviço em SSL é uma necessidade para qualquer coisa meio séria, então esse é um motivo para usar o haproxy que fará a terminação SSL para você.
Eu gostaria de balancear a carga dos meus servidores de aplicativos, assim como armazenar em cache as respostas deles.
Eu li um artigo que remonta a 2012 no site do HAProxy, que deveria limpar a confusão entre o HAProxy e o Varnish:
Este artigo basicamente diz que o HAProxy é um balanceador de carga de proxy reverso somente (sem cache), enquanto o Varnish é um cache de proxy reverso (sem balanceamento de carga), portanto eles são complementares.
Mas hoje, vejo nos documentos do Vernish que ele também faz o balanceamento de carga:
Então, só posso imaginar que esse recurso foi introduzido desde 2012 e que agora compete diretamente com o HAProxy em termos de balanceamento de carga.
Agora, considerando que eu preciso de um cache de proxy reverso + balanceador de carga, é verdade que posso usar um único servidor apenas com o Varnish, que fará as duas coisas? Quaisquer limitações, talvez, em comparação com um HAProxy típico < - > Configuração de verniz?
O Varnish não suporta SSL
A execução de um site / serviço em SSL é uma necessidade para qualquer coisa meio séria, então esse é um motivo para usar o haproxy que fará a terminação SSL para você.
Embora o HAProxy e o Varnish possam balancear a carga, apenas um deles é construído para ele.
Você poderia simplesmente usar o Apache para seus propósitos também, já que ele pode fazer proxy e armazenar em cache também, mas dificilmente é uma solução ideal.
Na minha opinião, é melhor usar cada produto para o que é melhor.
O que eu faço é instalar ambos na mesma caixa e configurar o Varnish para usar o HAProxy como seu único back-end.
O CDN é apontado para HAPROXY, que então equilibra a carga entre o Varnish e os backends, enviando para o Varnish por padrão, a menos que a solicitação venha do Varnish com base nos cabeçalhos ou IP de origem.
Dessa forma, você pode:
Assim como a maioria dos softwares que implementam balanceamento de carga básico, o Varnish realmente suporta apenas algoritmos de balanceamento round-robin e aleatório .
O HAProxy, por outro lado, é criado para balanceamento de carga e, portanto, suporta :
O fato de o balanceamento de carga do Varnish ser suficiente ou não depende das suas necessidades, mas certamente não substituiu o HAProxy.