Qual é o melhor para o Django? Lighttpd ou Nginx? Ou talvez algo mais? [fechadas]

18

Qual dos Lighttpd e Nginx é, com base na sua experiência, mais adequado para o Django? Eu usei os dois e quase não consigo notar nenhuma diferença, eles simplesmente funcionam bem ... Existem casos de uso em que um deles age muito melhor que o outro? Ao responder, leve em consideração a simplicidade da configuração e a eficiência.

Minha configuração usual é ter um processo separado do Django FCGI (como em ./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1) iniciado via daemontools ou um init.dscript e lighty / nginx atuando como um proxy reverso.

Ah, e se você acha que algum outro servidor http é muito melhor para o Django do que o Lighty e o Nginx, não hesite em compartilhar seus pensamentos.

Ryszard Szopa
fonte
Se um serviço fastcgi morrer, o daemontools supervisionará o reinício dentro de cinco segundos, para que o serviço seja feito novamente. Mas você ainda tem um pequeno intervalo de inatividade por lá. Na minha implantação, achei o fastcgi frágil, parando inesperadamente sob uma leve pressão. Após alguns períodos de inatividade e algumas ligações telefônicas desagradáveis ​​dos clientes, mudei o Nginx para reverter o proxy para o Apache mod_wsgi e tudo está zumbindo desde então.

Respostas:

14

Tanto o Nginx quanto o Lighttpd são escolhas melhores do que o apache quando se trata de usá-los como proxy reverso para Django, Rails, etc. Ambos suportam proxy FastCGI e Http. Ambos oferecem um único modelo baseado em select () (ou melhor) encadeado para uso eficiente dos recursos.

No entanto, meu voto vai para o Nginx, ele tem uma base de usuários muito ativa (atualmente é a queridinha do conjunto Ruby on Rails) e está em desenvolvimento ativo. Lighttpd pode ser confundido com estar morto há mais de 2 anos e ainda estamos esperando uma versão beta de 1,5.

Dave Cheney
fonte
7

O mod_wsgi é uma maneira recomendada de obter a aplicação Django em produção. O mod_wsgi do Apache é muito melhor que o nginx. Você não consegue encontrar o pacote oficial (nas atuais distribuições Linux) para o mod_wsgi do nginx e precisa compilá-lo sozinho. Eu gosto do nginx, mas se você quiser jogar em segurança, brinque com o Apache mod_wsgi.

miHost
fonte
2
Nginx mod_wsgi não é algo que você gostaria de usar. O Nginx é melhor para servir conteúdo estático e reverter o proxy para o Apache mod_wsgi para gerar a dinâmica. Você não gostaria de usar um servidor da Web assíncrono para gerar páginas dinâmicas e exibir conteúdo estático. O Apache mod_wsgi por si só também não faz muito sentido. Você não quer que a fera esteja ocupada pulverizando arquivos estáticos, enquanto deveria fazer o trabalho pesado. Leia mais aqui b-list.org/weblog/2008/jun/23/media
5

O mod-wsgi é a melhor maneira de executar aplicativos django em produção, menos complicado que o fastcgi e sem problemas com o tempo de inicialização, etc.

O mod-wsgi real é para o apache, mas há outro mod-wsgi para o nginx. O apache é brilhante, não posso comentar sobre o nginx.

Pessoalmente, eu ficaria longe do lighttpd. Ele não tem a estabilidade do nginx, ainda não vi um caso do lighttpd que não tenha um vazamento de memória.

Basicamente, minha primeira opção seria o apache 2.2, minha segunda opção seria o nginx.

Não acredite no hype sobre tempo de resposta e escalabilidade. A verdade é que isso simplesmente não importa. (Google usa Apache).

Rico
fonte
O Google usa o GWS ( en.wikipedia.org/wiki/Google_Web_Server ) e não o Apache. O Yahoo usa o Apache, mas é um antigo fork do 1.3.
Dave Cheney
O YouTube usa ou pelo menos usou o lighttpd, então não acho que seja tão ruim assim. Veja highscalability.com/youtube-architecture .
Cristian Ciupitu
Sim, mas embora o GWS seja um projeto secreto, sabe-se que ele se baseia no Apache.
o que o YT não está dizendo é que eles têm seu próprio garfo de poder. É verdade que lighty tem um problema conhecido de vazamento de memória. Eu acredito que eles podem ter consertado até agora, mas o representante persiste.
Abhishek Dujari
2

Além disso, considere usar o Google App Engine. Você pode hospedar seu projeto Django lá de graça e não precisa se preocupar em manter a infraestrutura do servidor.

Stephen Hassard
fonte
8
O Django no GAE tem limitações significativas, como não suportar nenhum recurso do banco de dados / ORM do Django. Se ele suporta o que você precisa, ótimo - mas verifique com cuidado!
Acredito que o MySQL agora seja suportado pelo GAE, portanto presumo que o ORM também será. Embora seja verdade, não tenho experiência em testá-lo. Django sem ORM é como pornô sem torrents.
Abhishek Dujari