Tenho pouca experiência em design de arquitetura de infra-estrutura de sites. Eu sei que pode ser situação específica. O site deve:
1) Precisa de suporte HTTPS para algumas páginas (por exemplo, página de login), enquanto outras são apenas páginas HTTP.
2) Precisa de vários servidores web para que seja necessário algum balanceamento de carga.
3) Precisa de cache e compactação HTTP para aumentar o desempenho.
4) Alguns pedidos (por exemplo, upload de imagens) devem ser roteados para servidores de back-end dedicados. Portanto, o balanceamento baseado em URL é necessário.
Eu sei que o NginX e o HAProxy são ótimos Proxy Reverso de código aberto e / ou Load Balancer. Como o HAProxy não suporta SSL, enquanto o balanceamento de carga do Nginx não é tão bom quanto o HAProxy. Eu vou pegar os dois.
Então, devo colocar o Nginx (como proxy reverso) na frente do HAProxy (como balanceador de carga) ou o oposto?
obrigado
fonte
haproxy desde a versão 1.5, lançada em 2014 , suporta SSL como um encanto, incluindo SNI.
Portanto, eu colocaria haproxy na frente do nginx.
fonte
Você deve apenas usar o nginx, ele faz tudo o que você precisa como servidor Web front-end. Se você precisar de balanceamento de carga de front-end, use um balanceador de carga L3, como o Linux Virtual Server , porque não atrapalha o processo do HAproxy. Use o HAproxy, se necessário, para fazer o balanceamento de carga nos bastidores, como solicitações de balanceamento para um pool de funcionários de back-end.
fonte