gunicorn + nginx vs mod_wsgi apache2

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Wie viel Last hast du denn?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

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.
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

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. :-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Leonidas hat geschrieben:Verschiedene virtualenvs kannst du genauso auch mit mod_wsgi haben, so läuft das bei mir schon seit einiger Zeit.
Ah, schön — dann reduziert sich der Vorteil in dieser Hinsicht auf verschiedene Python-Versionen.
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

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! :-)
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

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!
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

Fange gerade ein Projekt mit nginx + Gunicorn + Flask
Wollte ich nur mal in den Raum werfen :P
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

kbr hat geschrieben:Es sind beides stabile Kombinationen, wobei Nginx/gunicorn die weniger speicherhungrige ist.
Bitte nicht immer solche Unwahrheiten verbreiten; ein ordentlich konfigurierter Apache braucht weniger Speicher als Gunicorn :)
BlackJack

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.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

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.
Leonidas
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 :twisted: 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
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

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 :)
Antworten