¿Qué es lo mejor para Django? Lighttpd o Nginx? O tal vez algo más? [cerrado]

18

¿Cuál de Lighttpd y Nginx es, basándose en su experiencia, más adecuado para Django? He usado ambos y casi no noto ninguna diferencia, simplemente funcionan bien ... ¿Hay algún caso de uso cuando uno de ellos actúa mucho mejor que el otro? Al responder, tenga en cuenta la simplicidad de la configuración y la eficiencia.

Mi configuración habitual es tener un proceso Django FCGI separado (como en ./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1) lanzado a través de daemontools o un init.dscript y lighty / nginx actuando como un proxy inverso.

Ah, y si cree que algún otro servidor http es mucho mejor para Django que Lighty y Nginx, no dude en compartir sus pensamientos.

Ryszard Szopa
fuente
Si un servicio fastcgi muere, daemontools supervise lo reiniciará dentro de los cinco segundos, por lo que el servicio vuelve a funcionar. Pero todavía tiene un pequeño retraso de tiempo de inactividad allí. En mi despliegue encontré que fastcgi era frágil y se detenía inesperadamente bajo una leve presión. Después de algunos tiempos de inactividad y un par de llamadas telefónicas incómodas de los clientes, cambié Nginx para revertir el proxy a Apache mod_wsgi y todo está zumbando desde entonces.

Respuestas:

14

Tanto Nginx como Lighttpd son mejores opciones que apache cuando se trata de usarlos como proxy inverso para Django, Rails, etc. Ambos admiten FastCGI y Http. Ambos ofrecen un modelo basado en una sola selección () (o mejor) para un uso eficiente de los recursos.

Sin embargo, mi voto es para Nginx, tiene una base de usuarios muy activa (actualmente es la favorita del conjunto Ruby on Rails) y está en desarrollo activo. Lighttpd podría confundirse con estar muerto, más de 2 años y todavía estamos esperando una versión beta de 1.5.

Dave Cheney
fuente
7

mod_wsgi es una forma recomendada de poner la aplicación Django en producción. El mod_wsgi de Apache es mucho mejor que nginx. No puede encontrar el paquete oficial (en las distribuciones actuales de Linux) para mod_wsgi de nginx y necesita compilarlo usted mismo. Me gusta nginx pero si quieres jugar seguro, juega con Apache mod_wsgi.

miHost
fuente
2
Nginx mod_wsgi no es algo que quieras usar. Nginx es mejor para servir contenido estático y proxy inverso a Apache mod_wsgi para generar la dinámica. No querrá usar un servidor web asíncrono para generar páginas dinámicas y servir contenido estático. Apache mod_wsgi en sí mismo tampoco tiene mucho sentido. No querrás que esa bestia esté ocupada rociando archivos estáticos, mientras se supone que debe hacer el trabajo pesado. Lea más aquí b-list.org/weblog/2008/jun/23/media
5

mod-wsgi es la mejor manera de ejecutar aplicaciones de django en producción, menos complicado que fastcgi y sin problemas con los tiempos de inicio, etc.

El mod-wsgi real es para apache, pero hay otro mod-wsgi para nginx. El apache es brillante, no puedo comentar sobre el nginx.

Personalmente, me mantendría alejado de lighttpd. No tiene la estabilidad de nginx, todavía no he visto un caso de lighttpd que no tenga una pérdida de memoria.

Básicamente, mi primera opción sería apache 2.2, mi segunda opción sería nginx.

No creas la exageración sobre el tiempo de respuesta y la escalabilidad. La verdad es que simplemente no importa. (Google usa Apache).

Rico
fuente
Google usa GWS ( en.wikipedia.org/wiki/Google_Web_Server ) no Apache. Yahoo usa Apache, pero es una antigua bifurcación de 1.3.
Dave Cheney
YouTube usa o al menos usa lighttpd, así que no creo que sea tan malo. Ver highscalability.com/youtube-architecture .
Cristian Ciupitu
Sí, pero si bien GWS es un proyecto secreto, se sabe que se basa en Apache.
lo que YT no dice es que tienen su propio tenedor de lighty. Es cierto lighty tiene un conocido problema de pérdida de memoria. Creo que ya lo han solucionado, pero el representante persiste.
Abhishek Dujari
2

Además, considere usar Google App Engine. Puede alojar su proyecto Django allí de forma gratuita y no tener que preocuparse por mantener la infraestructura del servidor.

Stephen Hassard
fuente
8
Django en GAE tiene limitaciones significativas, como no admitir ninguna de las características de base de datos / ORM de Django. Si es compatible con lo que necesita, excelente, ¡pero verifique cuidadosamente!
Creo que MySQL ahora es compatible con GAE, así que supongo que ORM también lo será. Aunque es cierto, no tengo experiencia en probarlo. Django sin ORM es como el porno sin torrentes.
Abhishek Dujari