Qual é o propósito de executar o nginx na frente dos seus servidores de aplicativos no Amazon EC2?

1

Eu tenho feito muita pesquisa em arquitetura de back-end. Atualmente, estou executando um servidor de aplicativos django e um servidor de banco de dados postgresql nos serviços da web da Amazon. Todo o meu conteúdo é servido através do Gunicorn. Eu gostaria de saber por que os servidores nginx são colocados na frente dos servidores de aplicativos do django. Qual é o propósito deles? Aqui está um diagrama:

link

    
por noahandthewhale 13.04.2013 / 00:52

2 respostas

1

Em muitas pilhas, o nginx é frequentemente colocado na frente do unicórnio ou do gunicorn para armazenar em buffer as respostas a clientes lentos.

Veja a documentação do nginx para mais informações:

link

O ELB não faz buffering, portanto, ter o nginx no lugar pode economizar seu bacon.

    
por 13.04.2013 / 03:19
0

Geralmente você coloca um proxy reverso na frente dos servidores de backend como o gunicorn (ou o tomcat no mundo java) porque eles têm mais recursos e são mais resilientes.

Por exemplo, com o nginx você pode adicionar controle de acesso refinado, encerrar SSL e não ser tão suscetível a ataques DOS (que é o que o gunicorn menciona especificamente em seus documentos ( link ).

No EC2, você pode substituir nginx e haproxy por um ELB se não houver recursos especiais de nginx ou haproxy que você estiver usando. Consulte o link para obter uma comparação de ELBs e haproxy.

    
por 13.04.2013 / 02:28