Welches von Lighttpd und Nginx ist Ihrer Erfahrung nach besser für Django geeignet? Ich habe beide verwendet und kann kaum einen Unterschied feststellen, sie funktionieren einfach gut ... Gibt es Anwendungsfälle, in denen einer viel besser als der andere wirkt? Berücksichtigen Sie bei der Beantwortung sowohl die Einfachheit der Konfiguration als auch die Effizienz.
Mein übliches Setup besteht darin, einen separaten Django FCGI-Prozess (wie in ./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1
) über daemontools oder ein init.d
Skript zu starten und lighty / nginx als Reverse-Proxy zu verwenden.
Oh, und wenn Sie der Meinung sind, dass ein anderer http-Server für Django viel besser ist als Lighty und Nginx, zögern Sie bitte nicht, Ihre Gedanken mitzuteilen.
Antworten:
Sowohl Nginx als auch Lighttpd sind eine bessere Wahl als Apache, wenn es darum geht, sie als Reverse-Proxy für Django, Rails usw. zu verwenden. Beide unterstützen FastCGI- und HTTP-Proxys. Beide bieten ein einzelnes Thread-basiertes Select () - (oder besseres) Modell für eine effiziente Ressourcennutzung.
Mein Votum geht jedoch an Nginx, es hat eine sehr aktive Nutzerbasis (es ist derzeit der Liebling des Ruby on Rails-Sets) und befindet sich in der aktiven Entwicklung. Lighttpd könnte für über 2 Jahre tot gehalten werden und wir warten immer noch auf eine Beta von 1,5.
quelle
mod_wsgi wird empfohlen, um die Django-Anwendung in die Produktion zu bringen. Apache's mod_wsgi ist viel besser als nginx. Sie können das offizielle Paket (in aktuellen Linux-Distributionen) für nginxs mod_wsgi nicht finden und müssen es selbst kompilieren. Ich mag Nginx, aber wenn Sie auf Nummer sicher gehen wollen, spielen Sie mit Apache mod_wsgi.
quelle
mod-wsgi ist der beste Weg, um Django-Apps in der Produktion auszuführen, weniger umständlich als fastcgi und ohne Probleme mit den Startzeiten usw.
Das echte Mod-wsgi ist für Apache, aber es gibt ein anderes Mod-wsgi für Nginx. Der Apache ist brillant, ich kann den Nginx nicht kommentieren.
Persönlich würde ich mich von lighttpd fernhalten. Es hat nicht die Stabilität von Nginx, ich habe noch keinen Fall von Lighttpd gesehen, der kein Speicherleck hat.
Grundsätzlich wäre meine erste Wahl Apache 2.2, meine zweite Wahl wäre Nginx.
Glauben Sie nicht dem Hype um Reaktionszeit und Skalierbarkeit. Die Wahrheit ist, es ist einfach egal. (Google benutzt Apache).
quelle
Ziehen Sie auch die Verwendung von Google App Engine in Betracht. Sie können Ihr Django-Projekt dort kostenlos hosten und müssen sich nicht um die Wartung der Serverinfrastruktur kümmern.
quelle