[Technik] FastGCI mal wieder

Christof Donat cd at actsoft.de
Fri Mar 16 14:33:54 CET 2007


Hi,

> > Wobei laufende Prozesse dann üblicherweise auch dauerhaft
> > DB-Verbindungen oder Dateien geöffnet halten.
> >
> > Ich weiß nicht, wie sich das auswirkt...
>
> ein weiteres Problem von fast-cg wäre, dass viele Perl Skripte nicht
> damit klarkommen, mehrfach hintereinander in derselben Perl-Engine
> ausgeführt zu werden weil sie Variable nicht initialisieren.

Das tritt nicht auf, weil
1. das Skript nur einmal ausgeführt wird. Es bleibt dann eben selber aktiv. 
Sozusagen ein Applicationserver in Perl.
2. dadurch ja nicht jedes CGI-Skript zu einem FastCGI-Skript wird. Weder durch 
mod_fcgi, und noch weniger durch cgi-fcgi. Letzteres ist ein in C 
geschriebenes, sehr kleines CGI-Skript, dass eine FastCGI-Anwendung startet, 
wenn sie noch nicht läuft und den Request dahin weiterleitet. mod_fcgi tut 
das gleiche nur eben nicht als cgi-Skript, sondern als Apache-Modul.

> Hat PHP das Problem nicht?

Nein, PHP initialisiert alles für das Skript bei jedem Skriptstart neu.

> Mit der vorgestellten Idee wäre das Problem aber auch gelöst, da man dann
> bei solchen Skripten eben beim normalen CGI bliebe.

Auch das ist natürlich auch mit mod_fcgi möglich, die Konfiguration ist aber 
etwas komplizierter.

Zur Erklärung ein kurzer Abriss, wie FastCGI funktioniert:

Der Webserver baut eine Verbindung zum Applicationserver auf und schickt einen 
(oder auch mehrere) Request durch die Verbindung an den Applicationserver. 
Dessen Antwort wird als Antwort an die Anfrage zurückgegeben. Wenn es von 
beiden Seiten unterstützt wird, können mit Connection-Multiplexing mehrere 
Requests auch parallel durch eine Verbindung bearbeitet werden.

Mit CGI hat es nur so viel zu tun, als dass es Libraries gibt, die ein 
leichtes portieren von CGI-Skripten in FastCGI Skripte unterstützt.

Mit cgi-fcgi übernimmt das CGI-Skript die Rolle des Webservers, der natürlich 
kein Connection-Multiplexing unterstützt. Das kann aber mod_fcgi für Apache 1 
auch nicht.

Christof

-- 
actSoft gmbh                                 Software nach Maß

Zugspitzstr. 211                                www.actsoft.de
86165 Augsburg                                   cd at actsoft.de

                                      Registergericht Augsburg
Geschäftsführer                             Augsburg HRB 21896
Christof Donat                           UStID: DE 248 815 055


More information about the Technik mailing list