Frage

Was für eine mittelgroße bis große Python WSGI Anwendung, Apache + mod_wsgi oder Nginx verwenden + mod_wsgi?
Welche Kombination wird mehr Speicher und CPU-Zeit benötigen?
Welches ist schneller?
Welches ist bekannt für als die anderen stabiler zu sein?
Ich denke auch CherryPy der WSGI-Server zu verwenden, aber ich höre, es ist nicht sehr geeignet für eine sehr hohe Last Anwendung, was wissen Sie darüber?
Hinweis . Ich habe keine Python Web Framework verwenden, schrieb ich nur die ganze Sache von Grund auf neu
Hinweis . Andere Vorschläge sind auch willkommen,

War es hilfreich?

Lösung

Für nginx / mod_wsgi stellen Sie sicher, lesen Sie:

http: // blog. dscpl.com.au/2009/05/blocking-requests-and-nginx-version-of.html

Weil, wie nginx ist ein ereignisgesteuertes System unter, hat es Verhaltensmerkmale, die zu blockierenden Anwendungen schädlich sind, wie es der Fall mit WSGI basierten Anwendungen. Schlimmer-Case-Szenario ist, dass mit Multi-Prozess-nginx-Konfiguration können Sie jedoch Benutzeranfragen blockiert sogar einige nginx Arbeitsprozesse im Leerlauf kann sehen werden. Apache / mod_wsgi hat dieses Problem nicht als Apache-Prozesse werden nur Anfragen akzeptieren, wenn es die Ressourcen hat, um tatsächlich die Anforderung zu verarbeiten. Apache / mod_wsgi wird somit geben berechenbares und zuverlässiges Verhalten.

Andere Tipps

Der Autor von nginx mod_wsgi erklärt einige Unterschiede zu Apache mod_wsgi in diese Mailing-Liste Nachricht .

Der wesentliche Unterschied besteht darin, dass nginx gebaut wird eine große Anzahl von Verbindungen in einem viel kleineren Speicherplatz zu handhaben. Dies macht es sehr gut für Anwendungen geeignet, die Kometen wie Verbindungen zu tun, dass viele Leerlauf offene Verbindungen haben kann. Das gibt ihm auch einen ganz kleinen Speicher Fußdruck.

Von einer rohen Performance Sicht ist nginx schneller, aber nicht so viel schneller, dass ich das als bestimmender Faktor umfassen würde.

Apache hat den Vorteil, im Bereich der Module zur Verfügung, und die Tatsache, dass es ziemlich Standard ist. Alle Web-Host Sie gehen wird es installiert haben, und die meisten Techs werden sehr vertraut sein mit ihm.

Auch wenn Sie mod_wsgi verwenden, es ist Ihr wsgi Server, so dass Sie nicht einmal cherrypy brauchen.

Other than that, ist der beste Rat, den ich geben kann, ist versuchen, Ihre Anwendung sowohl unter Einrichten und einig Benchmarking zu tun, denn egal was jemand sagt Ihnen, die Leistung kann variieren.

Eine Sache, die CherryPy der Webserver hat sich für sie ist, dass es eine reine Python-Webserver (AFAIK), die kann oder auch nicht Bereitstellung einfacher für Sie. Plus, ich die Vorteile der Verwendung es sehen könnte, wenn Sie nur einen Server für WSGI und statische Inhalte verwendet wird.

(schamlose Werbung Warnung: Ich schrieb den WSGI Code, den ich bin zu erwähnen)

Kamaelia wird in der nächsten Version WSGI Unterstützung haben kommen. Die kühle Sache ist, dass Sie wahrscheinlich in der Lage sein werden, das vorgefertigt man entweder verwenden oder eigene mit dem bestehenden HTTP und WSGI Code erstellen.

(end shameless Stecker)

Mit dieser sagte, die aktuellen Optionen gegeben, würde ich persönlich wahrscheinlich mit CherryPy gehen, weil es die einfachste zu sein scheint, zu konfigurieren und ich kann Python-Code moreso verstehen, als ich C-Code verstehen können.

Sie können am besten tun, jeder von ihnen, um zu versuchen und sehen, was die Vor- und Nachteile eines jeden für Ihre spezifische Anwendung sind aber.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top