Configurando o Servidor 1 para analisar e passar solicitações de arquivos estáticos para o Servidor 2 e solicitações intensivas de computação para o Servidor 3

1

Problema:

Nossa API REST é para solicitações de imagens estáticas e solicitações para outras tarefas intensivas em computação, como a renderização de novas imagens.

Notamos que nosso servidor Apache-Django fica atolado em algumas solicitações de renderização e, portanto, não consegue atender às solicitações de imagens estáticas mais frequentes e simples.

Esboço básico de uma solução:

O servidor 1 analisa as solicitações de URL e decide se a solicitação é uma solicitação de imagem estática para passar para o Servidor 2 ou processar a solicitação para passar para o Servidor 3.

Servidor 2 e Servidor 3, em seguida, envia a resposta de volta ao cliente.

Nós usamos o AWS.

Perguntas:

O Apache-Django deve ser usado para todos os servidores acima?

O CloudFront deve ser considerado uma alternativa para o Servidor 2?

O servidor 1 pode ser manipulado de alguma forma estendendo o balanceador de carga do AWS?

O que mais eu devo pesquisar?

    
por b_dev 18.05.2012 / 03:45

1 resposta

1

O CloudFront não vai comprar muito se cada solicitação tiver que chegar primeiro ao seu servidor. No entanto, o CloudFront recentemente ganhou suporte para conteúdo dinâmico , para que você possa configurar seu serviço com base nisso.

O CloudFront seria o ponto de entrada para todas as solicitações recebidas. O conteúdo estático seria armazenado no S3 (com os cabeçalhos apropriados do Expires) e o CloudFront configurado para servir conteúdo estático do S3. O conteúdo dinâmico seria servido a partir de suas instâncias do EC2 (com cabeçalhos de expiração imediata) e do CloudFront configurado para exibir conteúdo dinâmico desses servidores.

    
por 18.05.2012 / 06:02