Ja wie der Titel schon sagt...
Würde mich sehr über Erfahrungsberichte (Vorteile/Nachteile) freuen und natürlich eure persönliche Geschmacksrichtung.
Da ich längere Zeit auf mod_wsgi und apache2 unterwegs war, vor kurzem über gunicorn und nginx stolperte im Zusammenhang mit Django... und das Testhalber aufgesetzt habe, es sich auch geschmeidiger anfühlt...
Es sind beides stabile Kombinationen, wobei Nginx/gunicorn die weniger speicherhungrige ist. Zudem bist Du nicht auf eine Python-Version festgelegt und kannst für verschiedene Projekte auch serverseitig virtualenv nutzen. Dieser Vorteil entfällt, sobald Dein Projekt den Server komplett auslastet. In diesem Fall wird die Django-Anwendung (und ggf. die db-Anbindung) zum Engpass und es stellt sich die Frage, ob Du lieber Apache/mod_wsgi oder Nginx/gunicorn skalierst. Ich würde letzteres bevorzugen.
kbr hat geschrieben:Zudem bist Du nicht auf eine Python-Version festgelegt und kannst für verschiedene Projekte auch serverseitig virtualenv nutzen. Dieser Vorteil entfällt, sobald Dein Projekt den Server komplett auslastet.
Verschiedene virtualenvs kannst du genauso auch mit mod_wsgi haben, so läuft das bei mir schon seit einiger Zeit.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Nachtrag: Bin auf nginx/gunicorn umgestiegen.
Wieso so ganz genau kann ich noch nicht mal sagen. Ich würde weiterhin behaupten Geschmackssache.
Jedoch gefällt mir die direkte Unterstützung gunicorns von Django sehr sehr gut!
Es ist ja auch die Frage wofür Speicher verbraucht wird. Ein Webserver der viel Speicher zum Cachen von statischen Inhalten verbraucht kann besser/schneller sein, als einer der um jeden Preis möglichst wenig Arbeitsspeicher belegen möchte.
Solche pauschalen Vergleiche bringen also unter Umständen nicht viel. Wie so oft bei solchen Fragen sollte man Entscheidungen aufgrund konkreter Anforderungen treffen und wenn mehrere Kombinationen diese Anforderungen grundsätzlich erfüllen entweder das nehmen was einem mehr zusagt wenn es schnell genug ist, oder unter möglichst realen Bedingungen *messen* was besser ist.
Was den Speicherverbrauch angeht kann ich mir vorstellen das bei einer komplexeren Webanwendung der Speicherbedarf der eigentlichen Webanwendung und/oder der Datenbank falls sie auf dem selben Rechner läuft, so gross wird, dass ein Unterschied bei den Webservern auch nicht mehr ins Gewicht fällt.
apollo13 hat geschrieben:Bitte nicht immer solche Unwahrheiten verbreiten; ein ordentlich konfigurierter Apache braucht weniger Speicher als Gunicorn
Apache ist aber nunmal per default alles andere als ordentlich konfiguriert, zumindest im Bezug auf Python Web Anwendungen.
Insofern ist man mit nginx und gunicorn im Zweifel besser dabei, es sei den man kann einen Apache richtig konfigurieren oder hat Lust sich damit zu beschäftigen.
Außerdem kann man in Apache mod_python verwenden, was viel besser ist als dieser WSGI-Quatsch Ist auch total sinnlos dass man Python-Applikationen über ein gemeinsames Interface einbinden kann, war damals viel besser als man alles für CGI, FastCGI, SCGI, mod_python und SimpleHTTPServer via Reverse Proxy konfiguriert hat.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
apollo13 hat geschrieben:Bitte nicht immer solche Unwahrheiten verbreiten; ein ordentlich konfigurierter Apache braucht weniger Speicher als Gunicorn
Da es nicht mein Anliegen ist Unwahrheiten zu verbreiten, habe ich Apache wahrscheinlich nie ordentlich konfiguriert (d.h. Module rausgeschmissen). Vermutlich ist meine Konfiguration von Nginx gegenwärtig auch nicht optimal