Frage Was ist das Beste für Django? Lighttpd oder Nginx? Oder vielleicht noch etwas? [geschlossen]


Welches von Lighttpd und Nginx ist aufgrund deiner Erfahrung besser für Django geeignet? Ich habe beide benutzt und kann kaum einen Unterschied feststellen, sie funktionieren einfach gut ... Gibt es irgendwelche Anwendungsfälle, wenn einer von ihnen sich viel besser verhält als der andere? Bitte berücksichtigen Sie bei der Beantwortung sowohl die Einfachheit der Konfiguration als auch die Effizienz.

Mein übliches Setup ist ein separater Django FCGI Prozess (wie in ./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1) gestartet über daemontols oder an init.d Skript und Lighty / Nginx als Reverse-Proxy.

Oh, und wenn Sie glauben, dass ein anderer http-Server für Django viel besser ist als Lighty und Nginx, zögern Sie bitte nicht, Ihre Gedanken zu teilen.


18
2018-05-27 11:38


Ursprung


Wenn ein Fastcgi-Service abstürzt, wird Daemontools Supervision ihn innerhalb von fünf Sekunden neu starten, so dass der Service wieder verfügbar ist. Aber Sie haben immer noch eine kleine Verzögerung der Ausfallzeit dort. Bei meinem Einsatz fand ich schnell, dass das fragile Produkt unerwartet unter leichtem Druck stehen bleibt. Nach ein paar Ausfallzeiten und peinlichen Telefonanrufen von Clients habe ich Nginx auf Reverse-Proxy umgestellt auf Apache mod_wsgi und seither summt alles.


Antworten:


Sowohl Nginx als auch Lighttpd sind besser als Apache, wenn es darum geht, sie als Reverse-Proxy für Django, Rails usw. zu verwenden. Beide unterstützen FastCGI und Http-Proxying. Beide bieten ein Single-Thread-select () (oder besser) basiertes Modell für eine effiziente Ressourcennutzung.

Aber meine Stimme geht an Nginx, es hat eine sehr aktive Benutzerbasis (es ist momentan der Liebling von Ruby on Rails) und wird aktiv weiterentwickelt. Lighttpd könnte fälschlicherweise für tot gehalten werden, 2+ Jahre und wir warten immer noch auf eine Beta von 1,5.


14





mod_wsgi ist die empfohlene Methode, um Django-Anwendungen in Produktion zu bringen. Apache mod_wsgi ist viel besser als nginx. Sie können kein offizielles Paket (in aktuellen Linux-Distributionen) für nginx mod_wsgi finden und Sie müssen es selbst kompilieren. Ich mag nginx, aber wenn Sie sicher spielen wollen, spielen Sie mit Apache mod_wsgi.


7



Nginx mod_wsgi ist nicht etwas, das Sie verwenden möchten. Nginx ist am besten für die Bereitstellung von statischem Inhalt und Reverse-Proxy für Apache mod_wsgi, um die Dynamik zu generieren. Sie möchten den asynchronen Webserver nicht sowohl zum Generieren dynamischer Seiten als auch zum Bereitstellen statischer Inhalte verwenden. Apache mod_wsgi macht auch nicht viel Sinn. Sie wollen nicht, dass das Biest damit beschäftigt ist, um statische Dateien herumzuspritzen, während es das schwere Heben durchführen soll. Lesen Sie hier mehr b-list.org/weblog/2008/jun/23/media


mod-wsgi ist der beste Weg, um Django-Apps in der Produktion zu betreiben, weniger fiddly als fastcgi und keine Probleme mit Start-up-Zeiten etc.

Der echte Mod-Wsgi ist für Apache, aber es gibt einen anderen Mod-Wsgi für Nginx. Der Apache One ist brilliant, 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).


5



Google verwendet GWS (en.wikipedia.org/wiki/Google_Web_Server) nicht Apache. Yahoo benutzt Apache, aber es ist eine alte Gabelung von 1.3. - Dave Cheney
YouTube benutzt oder benutzt zumindest lighttpd, also denke ich nicht, dass es so schlimm ist. Sehen highscalability.com/youtube-architecture. - Cristian Ciupitu
Ja, aber während GWS ein geheimes Projekt ist, ist bekannt, dass es auf Apache basiert.
Was YT nicht sagt ist, dass sie ihre eigene Gabel von Lighty haben. Ist wirklich lighty hat ein bekanntes Speicherverlustproblem. Ich glaube, sie haben es vielleicht schon repariert, aber die Wiederholung bleibt bestehen. - Abhishek Dujari


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 Server-Infrastruktur kümmern.


2



Django auf GAE hat erhebliche Einschränkungen, wie zum Beispiel keine Djangos Database / ORM-Funktionen zu unterstützen. Wenn es unterstützt, was Sie brauchen, großartig - aber sorgfältig prüfen!
Ich glaube, dass MySQL nun von GAE unterstützt wird, also nehme ich an, dass ORM auch das sein wird. Obwohl es wahr ist, habe ich keine Erfahrung, es auszuprobieren. Django ohne ORM ist wie Porno ohne Torrents. - Abhishek Dujari