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?


Ist mod_wsgi schneller? Mein aktueller Server verwendet CGI. Welche Gründe gibt es für einen Wechsel?
Parker


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


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:


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.