Seis longos anos e ninguém arriscou uma resposta. Bem, eu tenho um pouco de retrospectiva para complementar a experiência, então vou oferecer uma.
Q1. Talvez. Se você não se importar em adicionar a complexidade do cluster ao seu aplicativo e tiver o cuidado de evitar qualquer coisa que possa ocorrer no processo mestre, o cluster funciona muito bem. Caso contrário, você certamente desejará algo para controlar o processo do nó e reiniciá-lo quando o aplicativo falhar. Seu sistema operacional pode fornecer alternativas, como daemon ou systemd.
Q2. Não. Na melhor das hipóteses, em um bom dia com o vento em suas costas, o node-http-proxy é quase tão bom quanto o nginx ou o haproxy. Excluindo SSL, onde haproxy e nginx são muito melhores. Seria muito difícil construir um caso para ser mais adequado.
Q3. Sim ou haproxy. Até que você tenha a necessidade de introduzir verniz. Quando você chegar a esse ponto, você não terá que se perguntar se deve usar verniz. (Ou você vai usar um CDN).
Q4. Sua chamada. Haproxy é a minha ferramenta padrão de escolha para terminação e proxy TLS. Eu não me odeio o suficiente para colocar algo tão crítico como um balanceador de carga no servidor de outra pessoa, onde não posso executar o tcpdump ou outras ferramentas de solução de problemas.
-
Sim. Se você conhece bem o nginx, use-o para manipular a terminação HTTPS e fazer proxy das solicitações para os servidores de aplicativos. Se você já não gosta muito do nginx, considere haproxy . Com um nome como haproxy, você esperaria que fosse realmente bom em HA e proxy e não desapontaria.
-
haproxy / nginx. Sempre. Melhor gerenciamento de certificados, listando em cipherli.st , etc. Há também um impacto menor no seu aplicativo para atualizar o proxy quando as vulnerabilidades do openssl forem liberadas.
-
haproxy. (O nginx suporta websockets de proxy agora, então esta questão já passou da data de expiração).
-
Vários sites e BGP. A introdução de ferramentas como keepalived ou outros mecanismos de failover TCP peer-to-peer para a sua pilha provavelmente será a causa de uma interrupção para evitar uma. O uso de tais ferramentas é tipicamente raro, então o ser humano com conhecimento do local está fora de prática quando surge a necessidade. Mantenha a pilha mais simples e dependa das habilidades da sua equipe de rede. Eles são bem treinados no encaminhamento de problemas.