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?

Parker
quelle
Ist mod_wsgi schneller? Mein aktueller Server verwendet CGI. Welche Gründe gibt es für einen Wechsel?
Parker
Mögliches Duplikat: stackoverflow.com/questions/219110/…
Koroviev
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.

CGI gegen FCGI

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

pyfunc
quelle
1
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
user345602
9

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:

Cees Timmerman
quelle
4
  • FastCGI ist eine Art langlebiges CGI, das immer ausgeführt wird.
  • Mit FastCGI dauert es weniger lange.
  • Aufgrund von Multiprozessen kostet FastCGI mehr Speicher als CGI.

Im Detail Unterschied zwischen FastCGI und CGI

naveenKumar
quelle