Montag, 28. Juni 2010Python über FastCGI als CGI ausführenTrackbacks
Trackback-URL für diesen Eintrag
Keine Trackbacks
Kommentare
Ansicht der Kommentare:
(Linear | Verschachtelt)
Ich würde ja behaupten, die meisten Leute wollen eher *nicht* einzelne Scripts als (fast)cgi ausführen, sondern ganze Applikationen z.B. auf Basis von Django oder Turbogears einsetzen.
Hier bietet sich das WSGI-Protokoll an, dass von eigentlich allen wichtigen Python-Webframeworks unterstützt wird. Der Apache lernt es über mod_wsgi. Ich bin mir auch sicher, viele Leute würden Rails-Hosting gut finden. Dies geht zum Beispiel gut mit Phusion Passenger. Derzeit wird auch hier eine WSGI-Unterstützung eingebaut, sodass man Untersytützung für beides aus einer Hand bekommen kann.
Nur weil es über CGI läuft musst Du ganze Applikationen nicht zu einzelnen Skripten degradieren.
Bei FastCGI-Support in der Applikation und nicht im Interpreter wäre das einzig Interessante Daten zwischen den Requests vorzuhalten. Das verkompliziert sich aber schon wieder, wenn mehrere FastCGI-Server parallel laufen bzw. kann dann auch gleich so gelöst werden, dass "stateless Applications" diese Informationen auch erhalten (siehe z.B. den Session-Grusel bei PHP). Ich verstehe auch überhaupt nicht diesen Wirbel, der dort um WSGI herum gemacht wird. Da wird das Rad neu erfunden, wo es schon genügend andere funktionierende Schnittstellen gibt. Damit spaltet Python sich in einer Art Elite-Club erst einmal von der restlichen Welt ab. (Wenn Ruby auch WSGI unterstützen will ist das schmückend für das Projekt Ruby, der Rest bleibt unangetastet). Ich wette fast, dass sowohl Django wie auch Turbogears im CGI-Modus laufen. Soweit ich weiß ist der zumindest nicht so unterschiedlich zu mod_python. Was die ganzen Module für den Apachen angeht, so versuchen wir hier die Auswahl recht gering zu halten und alles über etablierte Schnittstellen von außen her anzubinden. Das macht in Sachen Wartung und Analyse wesentlich weniger Aufwand. Von den Problemen mit den Zugriffsrechten ganz zu schweigen
Ja, auch Django und Rails laufen unter CGI, nur halt um ein bis zwei Größenordnungen langsamer als via FastCGI/WSGI bzw. bei Rails über einen laufenden App-Server (oder via Passenger).
Bei deiner Lösung klingt es ein bisschen wie CGI mit FastCGI-Aufsatz. Die Idee bei FastCGI war damals doch explizit, dass du nicht mehr für jeden Request den Interpreter laden und die Anwendung initialisieren muss. Bei größeren Anwendungen ist das teilweise schon eine Menge Zeit. Deine Lösung klingt für mich eher danach, dass du jedesmal den Interpreter neu startest... Um FastCGI (oder jeden anderen Ansatz mit persistenten Serverprozessen) korrekt zu implementieren kommst du also um Unterstützung in der Anwendung nicht wirklich herum, wenn du nicht viele der Vorteile verspielen willst. Allerdings habe ich auch ein grundsätzliches Problem mit FastCGI, weil es als Protokoll extrem over-engineered ist. Die App-Server in der Java- und Ruby-Welt finde ich da wesentlich freundlicher
Wir nähern uns an
Der Clou ist, dass der Interpreter bei unserer Lösung "nur" zurückgesetzt wird, d.h. er ist die ganze Zeit bereits geladen und wartet nur darauf einen Skript zum Ausführen zu bekommen. Dementsprechend sollte es genau so schnell wie jede andere FastCGI-Implementierung sein zzgl. der Zeit, die die eigentliche Python-Applikation zum "booten" braucht. Im Zweifel ist letzteres vernachlässigbar und in so einem "unspezifischen" Setup wie wir es betreiben scheint mir das die beste Lösung. Ich habe mir WSGI allerdings nochmal auf die Liste gesetzt und wir werden wohl mal die wesentlichen Unterschiede herausarbeiten. Scheint ja auch einen WSGI-nach-FastCGI-Wrapper für Python zu geben
WSGI wäre definitv ein Killerfeature. Webapplikationen in PHP bauen ist meiner Ansicht nach nämlich ziemlich hässlich, das sollte man nicht mehr als unbedingt nötig tun.
Ich glaube Hässlich ist eher eine Frage des Programmierstils und/oder der Auswahl der benutzten Bibliotheken
Aber: WSGI bei uns macht Fortschritte. Bei Python führt da wohl kein Weg dran vorbei.
Django setzt auf flup zur fastcgi Unterstützung. Vielleicht hilft es ja
|
SucheRead this blog!KategorienKommentare
zu Fr, 20.10.2017 13:09
Das heißt dann ja eindeutig, d
ass sie Dein Passwort in Klart
ext speichern.
Ist schon zu
lange her, dass ich mich mit
PPP(oE), CHAP und PAP auseinan
derg [...]
zu Fr, 20.10.2017 13:05
Ich hatte (Wochen) bevor ich m
einen DSL-Anschlussbrief von 1
&1 bekommen habe im Kundeninte
rface das DSL-Passwort geänder
t.
Im Anschlussbrief war st
and [...]
zu Mi, 28.06.2017 11:29
Diese Information ist für Inte
ressierte bereits in der Übers
chrift enthalten.
Ich glaub
e nicht, dass es mir obliegt d
en Marktbegleiter durch expliz
ite [...]
zu Mi, 12.04.2017 00:09
Klarer Fall von "Bootloader ve
rgessen". Oder, fast noch schl
immer: Bootloader so verkorkst
, dass das Update nicht funkti
oniert.
Aber das Ding ist o
hneh [...]
Notice this! |