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...
Wollte ich mal in die Runde fragen.
Gruß
sei
gunicorn + nginx vs mod_wsgi apache2
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.
Meine derzeitigen Projekte verursachen nicht sehr viel Last.
Doch jenes an welchem ich derzeit Arbeit wird vermute ich einiges an Last verursachen.
@kbr, vielen Dank! Deine Worte sind jene welche man auch aus dem englischen Raum findet.
Doch jenes an welchem ich derzeit Arbeit wird vermute ich einiges an Last verursachen.
@kbr, vielen Dank! Deine Worte sind jene welche man auch aus dem englischen Raum findet.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Verschiedene virtualenvs kannst du genauso auch mit mod_wsgi haben, so läuft das bei mir schon seit einiger Zeit.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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ah, schön — dann reduziert sich der Vorteil in dieser Hinsicht auf verschiedene Python-Versionen.Leonidas hat geschrieben:Verschiedene virtualenvs kannst du genauso auch mit mod_wsgi haben, so läuft das bei mir schon seit einiger Zeit.
Ich werde es wohl einfach mal ausprobieren.
Habe hier eine Django Bude gefunden, welche gunicorn & nginx benutzt: https://www.divio.ch
Vielen Dank schon mal!
Habe hier eine Django Bude gefunden, welche gunicorn & nginx benutzt: https://www.divio.ch
Vielen Dank schon mal!
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!
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!
Bitte nicht immer solche Unwahrheiten verbreiten; ein ordentlich konfigurierter Apache braucht weniger Speicher als Gunicornkbr hat geschrieben:Es sind beides stabile Kombinationen, wobei Nginx/gunicorn die weniger speicherhungrige ist.
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.
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.
Apache ist aber nunmal per default alles andere als ordentlich konfiguriert, zumindest im Bezug auf Python Web Anwendungen.apollo13 hat geschrieben:Bitte nicht immer solche Unwahrheiten verbreiten; ein ordentlich konfigurierter Apache braucht weniger Speicher als Gunicorn
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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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
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 optimalapollo13 hat geschrieben:Bitte nicht immer solche Unwahrheiten verbreiten; ein ordentlich konfigurierter Apache braucht weniger Speicher als Gunicorn