FastCGI ist eine Verbesserung gegenüber CGI: Ein normales CGI Skript laufen zu lassen, verursacht eine Menge Overhead: Ein neuer Prozess muss erzeugt werden, der Skript Interpreter muss gestartet werden und das Skript muss zumindest geparsed werden.
FastCGI eliminiert diesen Overhead. Ein FastCGI Skript oder Applikation with nur einmal gestartet und kommuniziert dann mit dem Webserver mittels spezieller FastCGI messages. HTTP Skript Requests für dieses Skript und deren Antworten nutzen diese messages. Der Prozess bleibt unbegrenzt lange im Speicher und das Skript muss auch nur einmal geparsed werden. Dies erlaubt Skript-Ausführung mit wesentlich geringerem Overhead.
Für cFos Personal Net erlaubt dies außerdem die Verwendung von Node.js für Javascript Programme (und damit die Nutzung einer der schnellsten Javascript Engines).
Hier die Schritte, wie Sie FastCGI mit Node.js für cFos Personal Net installieren:
cFos Personal Net unterstützt die FastCGI Rolle "Responder", d.h.. die FastCGI App bzw. das Skript wird aufgerufen, um den aktuellen HTTP Request zu bearbeiten. Es wird nur die Konfiguration unterstützt, wo ein FastCGI Skript pro angefordertem Dateinamen gestartet wird und Requests über eine Verbindung gemultiplext werden. Da FastCGI Skripte sehr ähnlich, wie normale CGI Skripte arbeiten, nutzen sie typischerweise STDIN / STDOUT für die Kommunikation mit dem Webserver. Daher ergibt diese Konfiguration am meisten Sinn.
Um die Entwicklung Ihrer eigenen FastCGI Skripte zu erleichtern (z.B. mit node.js), wird die Fehlerausgabe des Skripts an den Browser weitergeleitet. Außerdem: Wenn Sie ein Skript entwickeln, brauchen Sie nicht jedes Mal den Webserver zu stoppen und zu starten, wenn Sie das Skript ändern. Killen Sie einfach den Prozess des Skript-Interpreters. cFos Personal Net lädt das Skript (in der neuen Version) neu, wenn es für den nächsten Request gebraucht wird.
FastCGI Spezifikation
https://github.com/fast-cgi/spec/blob/master/spec.md
FastCGI in Wikipedia
https://en.wikipedia.org/wiki/FastCGI
Node.js
https://nodejs.org/en/
Node.js Module für FastCGI
https://www.npmjs.com/package/node-fastcgi