O proxy reverso ainda é necessário entre o AWS ALB e o servidor de aplicativos?

O proxy reverso ainda é necessário entre o AWS ALB e o servidor de aplicativos?

Contexto

Aplicação Web com servidor de aplicação, ou seja, Ruby on Rails com puma. Executando em um contêiner no AWS ECS com Fargate. O tráfego é roteado pelo AWS Application Load Balancer diretamente para o servidor de aplicativos em execução no contêiner.

Pergunta

O proxy reverso ainda é necessário entre o ALB e o próprio aplicativo, ou seja, como contêiner secundário? Qual seria o benefício?

Responder1

Um proxy reverso não é necessário, mas os servidores web fornecidos com Rails têm funcionalidade mínima, portanto, para qualquer aplicação voltada ao público e que possa crescer potencialmente, é uma boa ideia integrar um proxy reverso (por exemplo, Nginx) desde o início.

Por exemplo, isso lhe daria capacidade avançada de limitação de taxa, armazenamento em cache e a capacidade de encerrar SSL de ponta a ponta com muito menos barulho do que outras implementações de servidor web. O registro também se torna muito mais fácil, e coisas como novas tentativas de TCP podem salvar vidas se seu aplicativo estiver sob carga.

Você não precisa de um carro lateral. Você pode instalar o Nginx na mesma caixa do seu aplicativo. É supereficiente e não afetará o desempenho do seu aplicativo.

Usamos vários proxies Nginx na frente do Rails e atendemos bilhões de solicitações http por dia.

Implementações massivas de proxy reverso, como Cloudflare, também são construídas no Nginx.

Responder2

Um balanceador de carga é um tipo de proxy reverso. Seus benefícios incluem aceitar tráfego em portas específicas, atuar como uma espécie de firewall e evitar que alguns tipos de ataques cheguem ao servidor.

Para o caso comum de um aplicativo da web, não vejo nenhum benefício significativo em ter um balanceador de carga e um segundo proxy reverso.

informação relacionada