Unterschiede und Verwendungen zwischen WSGI, CGI, FastCGI und mod_python in Bezug auf Python?
74
Ich frage mich nur, was die Unterschiede und Vorteile für die verschiedenen CGIs da draußen sind. Welches ist am besten für Python-Skripte geeignet und wie kann ich dem Skript mitteilen, was verwendet werden soll?
Wir können Ihnen nicht sagen, ob mod_wsgi in Ihrer Umgebung schneller sein wird. Sie müssen sie tatsächlich in Ihrer Umgebung anhand Ihrer Einschränkungen, Ihrer Anwendungen und Ihrer Konfiguration messen.
S.Lott
mod_wsgiist nur Apache. Ist es 2012 immer noch das beliebteste?
Anatoly Techtonik
Antworten:
44
Eine Teilantwort auf Ihre Frage, einschließlich scgi.
Anstatt für jede Anforderung einen neuen Prozess zu erstellen, verwendet FastCGI persistente Prozesse, um solche Anforderungen zu verarbeiten. Es können mehrere Prozesse konfiguriert werden, wodurch die Stabilität und Skalierbarkeit erhöht wird. Jeder einzelne FastCGI-Prozess kann während seiner gesamten Lebensdauer viele Anforderungen verarbeiten, wodurch der Aufwand für die Erstellung und Beendigung von Prozessen pro Anforderung vermieden wird
Es gibt eine FastCGI-Standardbibliothek (marcos), mit der Sie ein einzelnes Programm erstellen können,
xorcus
Frage zu FastCGI: Wie geht es mit gleichzeitigen Verbindungen mit einem Prozess um, wenn PHP selbst die Sprache blockiert? Was ist, wenn ich etwas "Schlaf (100)" habe? Blockiert es nicht den Prozess für die anderen Benutzer? Danke
mod_wsgi
ist nur Apache. Ist es 2012 immer noch das beliebteste?Antworten:
Eine Teilantwort auf Ihre Frage, einschließlich scgi.
Faul und nicht alleine schreiben. Aus der Wikipedia: http://en.wikipedia.org/wiki/FastCGI
Anstatt für jede Anforderung einen neuen Prozess zu erstellen, verwendet FastCGI persistente Prozesse, um solche Anforderungen zu verarbeiten. Es können mehrere Prozesse konfiguriert werden, wodurch die Stabilität und Skalierbarkeit erhöht wird. Jeder einzelne FastCGI-Prozess kann während seiner gesamten Lebensdauer viele Anforderungen verarbeiten, wodurch der Aufwand für die Erstellung und Beendigung von Prozessen pro Anforderung vermieden wird
quelle
Es gibt auch einen guten Hintergrundleser zu CGI, WSGI und anderen Optionen in Form eines offiziellen Python-HOWTO: http://docs.python.org/2/howto/webservers.html
quelle
In einem Projekt wie Django können Sie einen WSGI- Server ( Web Server Gateway Interface ) aus dem Flup-Modul verwenden .
Ein WSGI-Server schließt einen Back-End-Prozess mit einem oder mehreren Protokollen ab:
quelle
Im Detail Unterschied zwischen FastCGI und CGI
quelle