Hilfe zum IBM HTTP Server: FastCGI-Anweisungen

FastCGI-Anweisungen

FastCgiAccessChecker

Mit der Anweisung FastCgiAccessChecker können Sie eine FastCGI-Anwendung definieren, die als Zugriffsprüfprogramm für einzelne Verzeichnisse eingesetzt wird. Vor der Benutzerauthentifizierung findet die Apache-Zugriffsphase (Apache Access) statt. Damit basiert die Entscheidung, ob der Zugriff auf die angeforderte Ressource gewährt oder abgelehnt wird, auf dem HTTP-Header, der mit der Anforderung übergeben wird. FastCGI-gestützte Berechtigungsprüfprogramme sind in erster Linie dann von Nutzen, wenn in die Entscheidung darüber, ob ein Zugriff gültig ist, eine dynamische Komponente einbezogen wird, wie z. B. eine Uhrzeit oder die Tatsache, ob das Konto einer Domäne auf dem aktuellsten Stand ist.

Wenn es zu dem Dateinamen der FastCGI-Anwendung keine entsprechende statische oder externe Server-Definition gibt, wird die Anwendung als dynamische FastCGI-Anwendung gestartet. Beginnt der Dateiname nicht mit einem Schrägstrich (/), wird er relativ zur Server-Root interpretiert.

Die Anweisung FastCgiAccessChecker wird in den Behältern "Verzeichnis" (Directory) oder "Position" (Position) verwendet.

<Directory htdocs/protected>
FastCgiAccessChecker fcgi-bin/access-checker
</Directory>

mod_fastcgi sendet fast alle Standardumgebungsvariablen, die CGI/FastCGI-Anforderungsverarbeitungsprogrammen normalerweise zur Verfügung stehen. Alle von einer FastCGI-Zugriffsprüfanwendung in einer Erfolgsantwort (Status: 200) zurückgegebenen Header werden als Umgebungsvariablen an Unterprozesse (CGI/FastCGI-Aufrufe) übergeben. Die in einer Misserfolgsantwort zurückgegebenen Header werden an den Client übergeben. Mit der Option "-compat" kann eine Verarbeitung gemäß FastCGI-Spezifikation erreicht werden.

mod_fastcgi setzt die Umgebungsvariable "FCGI_APACHE_ROLE" auf "ACCESS_CHECKER" und gibt damit an, welche (Apache-spezifische) Phase des Berechtigungsprüfprogramms durchgeführt wird.

Benutzerdefinierte Fehlerantworten für FastCGI-Anwendungen für die Berechtigungsprüfung werden nicht unterstützt. Weitere Informationen zum Umgehen dieses Problems finden Sie in der Beschreibung der Anweisung ErrorDocument (das Dokument kann von einer FastCGI-Anwendung bereitgestellt werden).

FastCgiAccessCheckerAuthoritative

Wenn Sie die Anweisung FastCgiAccessCheckerAuthoritative explizit auf "Off" setzen, kann die Zugriffsprüfung an Module einer niedrigeren Ebene (die in der Konfigurationsdatei und der Datei "modules.c" definiert sind) übergeben werden, falls die FastCGI-Anwendung den Zugriff nicht gewährt.

Standardmäßig wird die Steuerung nicht übergeben. Ein gescheiterter Zugriff resultiert in der Antwort "Forbidden" (Zugriff verweigert). Sie sollten sich genau überlegen, ob Sie die Standardeinstellung inaktivieren.

FastCgiAuthenticator

Mit der Anweisung FastCgiAuthenticator können Sie eine FastCGI-Anwendung definieren, die als Authentifizierungsprogramm für einzelne Verzeichnisse eingesetzt wird. Authentifizierungsprogramme prüfen, ob der anfordernde Benutzer auch der ist, der er zu sein vorgibt. Bei dieser Überprüfung werden der angegebene Benutzername und das angegebene Kennwort mit einer Liste oder Datenbank bekannter Benutzer und Kennwörter abgeglichen. FastCGI-gestützte Authentifizierungsprogramme sind in erster Linie dann von Nutzen, wenn die Benutzerdatenbank in einem vorhandenen, unabhängigen Programm gepflegt wird oder sich auf einer anderen Maschine als dem Web-Server befindet.

Wenn es zu dem Dateinamen der FastCGI-Anwendung keine entsprechende statische oder externe Server-Definition gibt, wird die Anwendung als dynamische FastCGI-Anwendung gestartet. Beginnt der Dateiname nicht mit einem Schrägstrich (/), wird er relativ zur Server-Root interpretiert.

Die Anweisung FastCgiAuthenticator wird in den Behältern Directory oder Location verwendet und muss eine Anweisung "AuthType" und "AuthName" enthalten. Es wird lediglich der Benutzerauthentifizierungstyp "Basic" unterstützt. Damit die Anweisung ordnungsgemäß ausgeführt wird, muss sie zusammen mit einer Anweisung "require" oder "FastCgiAuthorizer" angegeben werden.

<Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
FastCgiAuthenticator fcgi-bin/authenticator
require valid-user
</Directory>

mod_fastcgi sendet fast alle Standardumgebungsvariablen, die CGI/FastCGI-Anforderungsverarbeitungsprogrammen normalerweise zur Verfügung stehen. Alle von einer FastCGI-Authentifizierungsanwendung in einer Erfolgsantwort (Status: 200) zurückgegebenen Header werden als Umgebungsvariablen an Unterprozesse (CGI/FastCGI-Aufrufe) übergeben. Die in einer Misserfolgsantwort zurückgegebenen Header werden an den Client übergeben. Mit der Option "-compat" kann eine Verarbeitung gemäß FastCGI-Spezifikation erreicht werden.

Mod_fastcgi setzt die Umgebungsvariable "FCGI_APACHE_ROLE" auf "AUTHENTICATOR" und gibt damit an, welche (Apache-spezifische) Phase des Berechtigungsprüfprogramms durchgeführt wird.

Benutzerdefinierte Fehlerantworten für FastCGI-Anwendungen für die Berechtigungsprüfung werden nicht unterstützt. Weitere Informationen zum Umgehen dieses Problems finden Sie in der Beschreibung der "ErrorDocument" (das Dokument kann von einer FastCGI-Anwendung bereitgestellt werden).

FastCgiAuthenticatorAuthoritative

Wenn Sie die Anweisung FastCgiAuthenticatorAuthoritative explizit auf Off setzen, kann die Authentifizierung an Module einer niedrigeren Ebene (die in der Konfigurationsdatei und der Datei modules.c definiert sind) übergeben werden, falls die FastCGI-Anwendung den Benutzer nicht authentifizieren kann.

Häufig wird diese Anweisung zusammen einer geschützten Benutzerauthentifizierungsdatei (AuthUserFile) verwendet, die einige (verwaltungsbezogene) Benutzer enthält.  

Standardmäßig wird die Steuerung nicht übergeben. Kann ein Benutzer nicht identifiziert werden, wird die Antwort "Berechtigung erforderlich" ausgegeben.  Sie sollten sich gut überlegen, ob Sie die Standardeinstellung inaktivieren.

FastCgiAuthorizer

Die Anweisung FastCgiAuthorizer wird verwendet, um eine FastCGI-Anwendung als Berechtigungsprüfprogramm auf Verzeichnisbasis zu definieren.  Berechtigungsprüfprogramme stellen fest, ob einem authentifizierten Benutzer erlaubt wird, auf eine angefragte Ressource zuzugreifen.  FastCGI-basierte Berechtigungsprüfprogramme sind hauptsächlich sinnvoll, wenn eine dynamische Komponente zur Entscheidung der Authentifizierung beiträgt, wie die Tageszeit, oder ob der Benutzer seine Rechnungen bezahlt hat oder nicht. 

Wenn es zu dem Dateinamen der FastCGI-Anwendung keine entsprechende statische oder externe Server-Definition gibt, wird die Anwendung als dynamische FastCGI-Anwendung gestartet.  Beginnt der Dateiname nicht mit einem Schrägstrich (/), wird er relativ zur Server-Root interpretiert.

Die Anweisung FastCgiAuthorizer wird in den Behältern Directory oder Location verwendet und muss eine Anweisung "AuthType" und "AuthName" enthalten. Damit die Anweisung ordnungsgemäß ausgeführt wird, muss sie zusammen mit einer Authentifizierungs-Anweisung "FastCGIAuthenticator", "AuthUserFile", "AuthDBUserFile" oder "AuthDBMUserFile" angegeben werden.

.

<Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
AuthDBMUserFile conf/authentication-database
FastCgiAuthorizer fcgi-bin/authorizer
</Directory>

mod_fastcgi sendet fast alle Standardumgebungsvariablen, die CGI/FastCGI-Anforderungsverarbeitungsprogrammen normalerweise zur Verfügung stehen.  Alle von einer FastCGI-Authentifizierungsanwendung in einer Erfolgsantwort (Status: 200) zurückgegebenen Header werden als Umgebungsvariablen an Unterprozesse (CGI/FastCGI-Aufrufe) übergeben.  In einer Misserfolgsantwort zurückgegebene Header werden an den Client zurückgegeben.  Mit der Option "-compat" kann eine Verarbeitung gemäß FastCGI-Spezifikation erreicht werden.

Mod_fastcgi setzt die Umgebungsvariable "FCGI_APACHE_ROLE" auf "AUTHORIZER" und gibt damit an, welche (Apache-spezifische) Phase des Berechtigungsprüfprogramms durchgeführt wird.

Benutzerdefinierte Fehlerantworten von FastCGI-Berechtigungsprüfprogrammen werden nicht unterstützt.  Weitere Informationen zum Umgehen dieses Problems finden Sie in der Beschreibung der Anweisung ErrorDocument (das Dokument kann von einer FastCGI-Anwendung bereitgestellt werden).

FastCgiAuthorizerAuthoritative

Wenn Sie die Anweisung FastCgiAuthenticatorAuthoritative explizit auf Off setzen, kann die Authentifizierung an Module einer niedrigeren Ebene (die in der Konfigurationsdatei und der Datei modules.c definiert sind) übergeben werden, falls die FastCGI-Anwendung den Benutzer nicht authentifizieren kann.

Häufig wird diese Anweisung zusammen einer geschützten Benutzerauthentifizierungsdatei (AuthUserFile) verwendet, die einige (verwaltungsbezogene) Benutzer enthält.  

Standardmäßig wird die Steuerung nicht übergeben. Kann ein Benutzer nicht identifiziert werden, wird die Antwort "Berechtigung erforderlich" ausgegeben.  Sie sollten sich gut überlegen, ob Sie die Standardeinstellung inaktivieren.

FastCgiConfig

Mit der Anweisung FastCgiConfig werden die Standardparameter für alle dynamische FastCGI-Anwendungen definiert. Diese Anweisung hat keinerlei Auswirkung auf statische oder externe Anwendungen.

Dynamische Anwendungen werden nicht bei der Server-Initialisierung gestartet, sondern bei Bedarf. Wenn der Bedarf hoch ist, werden weitere Anwendungsinstanzen gestartet. Bei sinkendem Bedarf werden die Anwendungsinstanzen gelöscht. Dieser Prozess wird von vielen Optionen gesteuert.

Die folgenden Optionen sind verfügbar (Groß-/Kleinschreibung beachten):

appConnTimeout n (0 Sekunden)
Die Zeit in Sekunden, die gewartet wird, dass eine Verbindung zur FastCGI-Anwendung hergestellt wird. Mit der Angabe 0 kann festgelegt werden, dass endlos auf einen Verbindungsaufbau gewartet werden soll (blocking connect()).  Wenn das Zeitlimit abläuft, tritt ein Server-Fehler (  SERVER_ERROR) auf.  Werte ungleich Null geben den Zeitraum an, der bei der select()-Operation für das Schreiben in den Dateideskriptor verwendet wird, der von einer nicht endlos wartenden Verbindungsanforderung (connect()) zurückgegeben wird.  Nicht endlos wartende Verbindungsanforderungen (connect()) verursachen auf zahlreichen Plattformen Probleme.  Lesen Sie in diesem Zusammenhang auch die Erklärungen zum Attribut "-idle-timeout", das ähnliche Ergebnisse, allerdings in einer verständlicheren Weise, liefert.
idle-timeout n (30 Sekunden)
Zulässige Inaktivität (in Sekunden) der FastCGI-Anwendung. Nach diesem Zeitraum wird die Anforderung abgebrochen und das Ereignis protokolliert (unter error LogLevel).  Der Inaktivitätszeitgeber ist nur so lange wirksam, wie eine Verbindung mit der FastCGI-Anwendung ansteht.  Wenn eine eine Anforderung in die Warteschlange einer Anwendung gestellt wird, die Anwendung in diesem Zeitraum jedoch nicht reagiert (durch Schreiben und Zurückschreiben in den Puffer), wird die Anwendung beendet.  Sollte die Übertragung mit der Anwendung abgeschlossen sein, mit dem Client jedoch nicht (in diesem Fall wird die Antwort in den Puffer gestellt), gilt das Zeitlimit nicht.
autoUpdate none
Wenn diese Option definiert wird, überprüft mod_fastcgi das Alter der Anwendung auf der Platte, bevor die einzelnen Anforderungen verarbeitet werden.  Wenn die Anwendung jünger ist, wird der Prozess-Manager benachrichtig und alle aktiven Instanzen der Anwendung beendet.  Im allgemeinen ist es besser, wenn diese Art der Funktionalität in die Anwendung integriert ist (z. B. dass nach jeder 100 Anforderung geprüft wird, ob es eine neuere Version auf der Platte gibt, und die Anwendung beendet wird, wenn dies der Fall sein sollte).  Es könnte ein schwerwiegender Fehler (Programmfehler) auftreten, wenn diese Option mit -restart angegeben wird.
gainValue n (0.5)
Ein Gleitkommawert zwischen 0 und 1, der als Exponent bei der Berechnung eines exponentiell gedämpften, auf der Verbindungsanzahl basierenden Belastungsfaktors für die momentan laufenden dynamischen FastCGI-Anwendungen verwendet wird.  Die alten Werte werden mit (1 - gainValue) multipliziert. Bei der Angabe eines kleinen Gain-Wertes wird somit den alten Werten im Vergleich zum aktuellen Wert, der mit gainValue multipliziert wird, mehr Gewicht beigemessen.
initial-env name[=Wert] none
Ein Name/Wert-Paar, das an die Startumgebung übergeben wird, wenn Instanzen der Anwendung erzeugt werden.  Beim Übergeben einer Variablen aus der Apache-Umgebung dürfen Sie kein Gleichheitszeichen ("=") angeben. Wenn die Variable nicht wirklich zur Umgebung gehört, wird sie ohne Wert definiert.  Beim Definieren einer Variablen ohne Wert, müssen Sie das Gleichheitszeichen ("=") ohne folgenden Wert angeben.  Diese Option kann mehrfach verwendet werden.
init-start-delay n (1 Sekunde)
Der Mindestzeitraum (in Sekunden) zwischen dem Erzeugen der Anwendungsinstanzen.   Diese Verzögerung vermindert die Anforderungslast auf dem Server bei der Server-Initialisierung.
killInterval n (300 Sekunden)
Das Beendigungsintervall (killInterval) legt fest, wie oft die Maßnahme zur dynamischen Beendigung von Anwendungsinstanzen im Prozessmanager implementiert wird.  Ein kurzes Intervall führt zu einer agressiveren Durchführung der Maßnahme, ein längeres Intervall zu einer weniger aggressiven.
listen-queue-depth n (100)
Die Schachtelungstiefe der listen()-Warteschlange (wird auch als Backlog bezeichnet), die von allen Instanzen dieser Anwendung verwendet wird.  Eine tiefer verschachtelte listen-Warteschlange ermöglicht dem Server, vorübergehende Auslastungsfluktuationen zu bewältigen, ohne Anforderungen zurückweisen zu müssen. Der Durchsatz wird dadurch jedoch nicht erhöht.  Je nach Anwendung und Host kann der Durchsatz (die Leistung) möglicherweise durch Hinzufügen weiterer Anwendungsinstanzen erhöht werden.
maxClassProcesses n (10)
Die maximal zulässige Anzahl der ausführbaren Instanzen einer dynamischen FastCGI-Anwendung.
maxProcesses n (50)
Die maximal zulässige Gesamtanzahl der gleichzeitig ausführbaren Instanzen dynamischer FastCGI-Anwendungen.
minProcesses n (5)
Die zulässige Mindestgesamtanzahl der gleichzeitig ausführbaren Instanzen dynamischer FastCGI-Anwendungen, ohne dass eine Instanz vom Prozessmanager (aufgrund Bedarfsmangel) beendet wird.
multiThreshhold n (50)
Ein Integer zwischen 0 und 100, mit dem ermittelt wird, ob eine Instanz einer FastCGI-Anwendung gelöscht werden muss.  Wenn mehrere Instanzen der Anwendung gleichzeitig ausgeführt werden, kann anhand dieses Attributs festgestellt werden, ob eine der Instanzen gelöscht werden muss.  Ist nur eine Instanz vorhanden, wird statt dessen das Attribut singleThreshhold verwendet.
pass-header header none
Der Name eines HTTP-Anforderungs-Header, der an die Anforderungsumgebung übergeben wird.  Mir dieser Option wird der Inhalt von Headern bereitgestellt, die in einer CGI-Umgebung normalerweise nicht verfügbar sind (z. B. Berechtigung).
priority n (0)
Die Prozesspriorität, die den Anwendungsinstanzen zugewiesen werden soll (mit setpriority()).
processSlack n (5 seconds)
Wenn die Summe aller momentan ausgeführten dynamischen FastCGI-Anwendungen den Wert für maxProcesses - processSlack überschreitet, leitet der Prozessmanager die Beendigungsmaßnahme (kill) ein.  Bei hoher Arbeitslast kann dadurch die Leistung verbessert werden, indem einige der  inaktivsten Anwendungsinstanzen beendet werden, bevor der Wert von maxProcesses erreicht wird.
restart none
Diese Option veranlasst den Prozessmanager, beim Auftreten von Fehlern dynamische Anwendungen erneut zu starten (ähnlich wie bei statischen Anwendungen).
restart-delay n (5 Sekunden)
Der Mindestzeitraum (in Sekunden) zwischen dem Erzeugen neuer Instanzen der Anwendung als Ersatz für fehlerhafte Instanzen.  Durch diese Verzögerung wird verhindert, dass eine fehlerhafte Anwendung zu viele Systemressourcen beansprucht.
singleThreshhold n (0)
Ein Integer zwischen 0 und 100, mit dem festgestellt werden kann, ob die letzte Instanz einer FastCGI-Anwendung beendet werden kann.  Wenn der vom Prozessmanager für die Anwendung berechnete Belastungsfaktor unter dem angegebenen Schwellenwert liegt, wird die letzte Instanz beendet.  Damit Ihre ausführbaren Dateien langfristig im "Leerlaufmodus" ausgeführt werden, müssen Sie einen Wert um 1 angeben. Wenn Speicher oder CPU-Zeit jedoch im Vordergrund stehen, wäre ein Wert um 100 zu empfehlen.  Mit dem 0 können Sie verhindern, dass die letzte Instanz einer Anwendung beendet wird. 0 ist der Standardwert und sollte nicht geändert werden (insbesondere, wenn das Attribut "-appConnTimeout" gesetzt ist).
startDelay n (3 Sekunden)
Die Zeit in Sekunden, die der Web-Server geduldig wartet, während die Verbindung zu einer dynamischen FastCGI-Anwendung hergestellt wird.  Nach Ablauf dieses Intervalls wird der Prozessmanager benachrichtigt in der Hoffnung, dass er ein weiteres Exemplar der Anwendung startet.  Der Wert von startDelay muss niedriger sein als der von appConnTimeout, damit dieses Attribut angewendet wird.
updateInterval n  (300 Sekunden)
Das Aktualisierungsintervall (updateInterval) legt fest, wie oft eine statistische Analyse durchgeführt wird, um festzustellen, was mit dynamischen FastCGI-Anwendungen geschehen soll.

FastCgiExternalServer

appConnTimeout n (0 Sekunden)
Die Zeit in Sekunden, die gewartet wird, dass eine Verbindung zur FastCGI-Anwendung hergestellt wird. Mit der Angabe 0 kann festgelegt werden, dass endlos auf einen Verbindungsaufbau gewartet werden soll (blocking connect()).  Wenn das Zeitlimit abläuft, tritt ein Server-Fehler (  SERVER_ERROR) auf.  Werte ungleich Null geben den Zeitraum an, der bei der select()-Operation für das Schreiben in den Dateideskriptor verwendet wird, der von einer nicht endlos wartenden Verbindungsanforderung (connect()) zurückgegeben wird.  Nicht endlos wartende Verbindungsanforderungen (connect()) verursachen auf zahlreichen Plattformen Probleme.  Lesen Sie in diesem Zusammenhang auch die Erklärungen zum Attribut "-idle-timeout", das ähnliche Ergebnisse, allerdings in einer verständlicheren Weise, liefert.
idle-timeout n (30 Sekunden)
Zulässige Inaktivität (in Sekunden) der FastCGI-Anwendung. Nach diesem Zeitraum wird die Anforderung abgebrochen und das Ereignis protokolliert (unter error LogLevel).  Der Inaktivitätszeitgeber ist nur so lange wirksam, wie eine Verbindung mit der FastCGI-Anwendung ansteht.  Wenn eine eine Anforderung in die Warteschlange einer Anwendung gestellt wird, die Anwendung in diesem Zeitraum jedoch nicht reagiert (durch Schreiben und Zurückschreiben in den Puffer), wird die Anwendung beendet.  Sollte die Übertragung mit der Anwendung abgeschlossen sein, mit dem Client jedoch nicht (in diesem Fall wird die Antwort in den Puffer gestellt), gilt das Zeitlimit nicht.
flush none
Dieses Attribut erzwingt das Schreiben auf den Client, wenn Daten von der Anwendung empfangen werden.  Standardmäßig puffert mod_fastcgi die Daten, um die Anwendung so schnell wie möglich wieder freizugeben.
host Host-Name:Port none
Der Host-Name oder die IP-Adresse und die TCP-Port-Nummer (1 - 65535), den bzw. die die Anwendung für die Kommunikation mit dem Web-Server verwendet. Die Optionen -socket und -host schließen sich gegenseitig aus.
Pass-header Header none
Der Name eines HTTP-Anforderungs-Header, der an die Anforderungsumgebung übergeben wird.  Mir dieser Option wird der Inhalt von Headern bereitgestellt, die in einer CGI-Umgebung normalerweise nicht verfügbar sind (z. B. Berechtigung).
socket Dateiname none
UNIX: Der Dateiname des UNIX-Domänen-Socket, den die Anwendung für die Kommunikation mit dem Web-Server verwendet.  Der Dateiname wird relativ zu FastCgiIpcDir interpretiert.  Die Optionen -socket und -port schließen sich gegenseitig aus.
Windows NT:  Der Name der benannten Pipe, die die Anwendung für die Kommunikation mit dem Web-Server verwendet. Der Name wird relativ zu FastCgiIpcDir interpretiert.  Die Optionen -socket und -port schließen sich gegenseitig aus.

FastCgiIpcDir

UNIX: Mit der Anweisung FastCgiIpcDir geben Sie das Verzeichnis an, in dem die Dateien des UNIX-Socket, der für die Kommunikation zwischen den Anwendungen und dem Web-Server verwendet wird, gespeichert (und bei externen FastCGI-Anwendungen) gesucht) werden sollen. Beginnt der Verzeichnisname nicht mit einem Schrägstrich (/), wird er relativ zur Server-Root interpretiert. Ist das Verzeichnis nicht vorhanden, wird versucht, das Verzeichnis mit den richtigen Berechtigungen zu erstellen. Geben Sie kein Verzeichnis außerhalb des lokalen Dateisystems an. Wenn Sie das Standardverzeichnis (oder ein anderes Verzeichnis unter /tmp) verwenden, wird mod_fastcgi beendet, wenn das System Dateien aus dem Verzeichnis /tmp löscht.

Windows NT: Mit der Anweisung FastCgiIpcDir geben Sie für Name die Root für die benannten Pipes an, die für die Kommunikation zwischen der Anwendung und dem Web-Server verwendet werden. Der Name muss im Format \\.\pipe\Name_der_Pipe angegeben werden. Der Teil Name_der_Pipe kann alle Zeichen außer dem umgekehrten Schrägstrich enthalten.

Die Anweisung FastCgiIpcDir muss vor den Anweisungen FastCgiServer und FastCgiExternalServer stehen (die UNIX-Sockets verwenden). Der Web-Server muss in der Lage sein, dieses Verzeichnis zu lesen, in das Verzeichnis zu schreiben und in das Verzeichnis zu wechseln (es zu durchsuchen). Sonst sollte niemand auf dieses Verzeichnis zugreifen können.

FastCgiServer

Mit der Anweisung FastCgiServer definieren Sie die Datei Dateiname als statische FastCGI-Anwendung. Beginnt der Dateiname nicht mit einem Schrägstrich (/), wird er relativ zur Server-Root interpretiert.

Standardmäßig startet der Prozessmanager eine Instanz der Anwendung mit den im folgenden in runden Klammern angegebenen Standardkonfigurationseinstellungen. Sollte eine statische Anwendungsinstanz aus irgendeinem Grund beendet werden, erzeugt mod_fastcgi eine weitere Instanz, die die beendete Instanz ersetzt, und protokolliert das Ereignis (mit der Warnung Protokollstufe).

Die folgenden Optionen sind verfügbar (Groß-/Kleinschreibung beachten):

appConnTimeoutn (0 Sekunden)
Die Zeit in Sekunden, die gewartet wird, dass eine Verbindung zur FastCGI-Anwendung hergestellt wird. Mit der Angabe 0 kann festgelegt werden, dass endlos auf einen Verbindungsaufbau gewartet werden soll (blocking connect()).  Wenn das Zeitlimit abläuft, tritt ein Server-Fehler (  SERVER_ERROR) auf.  Werte ungleich Null geben den Zeitraum an, der bei der select()-Operation für das Schreiben in den Dateideskriptor verwendet wird, der von einer nicht endlos wartenden Verbindungsanforderung (connect()) zurückgegeben wird.  Nicht endlos wartende Verbindungsanforderungen (connect()) verursachen auf zahlreichen Plattformen Probleme.  Lesen Sie in diesem Zusammenhang auch die Erklärungen zum Attribut "-idle-timeout", das ähnliche Ergebnisse, allerdings in einer verständlicheren Weise, liefert.
idle-timeout n (30 Sekunden)
Zulässige Inaktivität (in Sekunden) der FastCGI-Anwendung. Nach diesem Zeitraum wird die Anforderung abgebrochen und das Ereignis protokolliert (unter error LogLevel).  Der Inaktivitätszeitgeber ist nur so lange wirksam, wie eine Verbindung mit der FastCGI-Anwendung ansteht.  Wenn eine eine Anforderung in die Warteschlange einer Anwendung gestellt wird, die Anwendung in diesem Zeitraum jedoch nicht reagiert (durch Schreiben und Zurückschreiben in den Puffer), wird die Anwendung beendet.  Sollte die Übertragung mit der Anwendung abgeschlossen sein, mit dem Client jedoch nicht (in diesem Fall wird die Antwort in den Puffer gestellt), gilt das Zeitlimit nicht.
initial-env name[=Wert] none] none
Ein Name/Wert-Paar, das an die  Startumgebung übergeben wird.  Beim Übergeben einer Variablen aus der Apache-Umgebung dürfen Sie kein Gleichheitszeichen ("=") angeben. Wenn die Variable nicht wirklich zur Umgebung gehört, wird sie ohne Wert definiert.  Beim Definieren einer Variablen ohne Wert, müssen Sie das Gleichheitszeichen ("=") ohne folgenden Wert angeben.  Diese Option kann mehrfach verwendet werden.
init-start-delay n(1 Sekunde)
Der Mindestzeitraum (in Sekunden) zwischen dem Erzeugen der Anwendungsinstanzen.   Diese Verzögerung vermindert die Anforderungslast auf dem Server bei der Server-Initialisierung.
Flush none
Dieses Attribut erzwingt das Schreiben auf den Client, wenn Daten von der Anwendung empfangen werden.  Standardmäßig puffert mod_fastcgi die Daten, um die Anwendung so schnell wie möglich wieder freizugeben.
Listen-queue-depth n (100)
Die Schachtelungstiefe der listen()-Warteschlange (wird auch als Backlog bezeichnet), die von allen Instanzen dieser Anwendung verwendet wird.  Eine tiefer verschachtelte listen-Warteschlange ermöglicht dem Server, vorübergehende Auslastungsfluktuationen zu bewältigen, ohne Anforderungen zurückweisen zu müssen. Der Durchsatz wird dadurch jedoch nicht erhöht.  Je nach Anwendung und Host kann der Durchsatz (die Leistung) möglicherweise durch Hinzufügen weiterer Anwendungsinstanzen erhöht werden.
Pass-header Header none
Der Name eines HTTP-Anforderungs-Header, der an die Anforderungsumgebung übergeben wird.  Mir dieser Option wird der Inhalt von Headern bereitgestellt, die in einer CGI-Umgebung normalerweise nicht verfügbar sind (z. B. Berechtigung).
processes n (1)
Die Anzahl der Anwendungsinstanzen, die bei der Server-Initialisierung gestartet werden soll.
Priority n (0)
Die Prozesspriorität, die den Anwendungsinstanzen zugewiesen werden soll (mit setpriority()).
port n none
Die Nummer des TCP-Port (1-65535), den die Anwendung für die Kommunikation mit dem Web-Server verwendet.  Wenn diese Option verwendet wird, kann von anderen Maschinen im Netz (und auch von dieser) auf die Anwendung zugegriffen werden.  Die Optionen -socket und -port schließen sich gegenseitig aus.
Restart-delay n (5 Sekunden)
Der Mindestzeitraum (in Sekunden) zwischen dem Erzeugen neuer Instanzen der Anwendung als Ersatz für fehlerhafte Instanzen.  Durch diese Verzögerung wird verhindert, dass eine fehlerhafte Anwendung zu viele Systemressourcen beansprucht.
Socket Dateiname (wird generiert)
UNIX: Der Dateiname des UNIX-Domänen-Socket, den die Anwendung für die Kommunikation mit dem Web-Server verwendet.  Das Modul erstellt den Socket in dem mit der Anweisung FastCgiIpcDir festgelegten Verzeichnis.  Wenn diese Option verwendet wird, können andere Anwendungen (z. B. cgi-fcgi) auf derselben Maschine oder über externe FastCGI-Anwendungsdefinitionen (FastCgiExternalServer) auf die Anwendung zugreifen.  Werden weder -socket noch -port angegeben, generiert das Modul einen Dateinamen für den UNIX-Domänen-Socket.  Die Optionen -socket und -port schließen sich gegenseitig aus.
Windows NT: Der Name der benannten Pipe, die die Anwendung für die Kommunikation mit dem Web-Server verwendet.  Das Modul erstellt die benannte Pipe unterhalb der mit der Anweisung FastCgiIpcDir angegebenen Pipe-Root.  Wenn diese Option verwendet wird, können andere Anwendungen (z. B. cgi-fcgi) auf derselben Maschine oder über externe FastCGI-Anwendungsdefinitionen (FastCgiExternalServer) auf die Anwendung zugreifen.  Werden weder -socket noch -port angegeben, generiert das Modul einen Namen für die benannte Pipe.  Die Optionen -socket und -port schließen sich gegenseitig aus.

 

FastCgiSuexec

Mit der Anweisung FastCgiSuexec können Sie die Unterstützung für einen suexec-Wrapper aktivieren.  FastCgiSuexec erfordert, dass suexec auf dem Apache-Server (für CGI) aktiviert ist.  Um denselben suexec-Wrapper zu verwenden, der vom Apache-Server genutzt wird, müssen Sie die Anweisung FastCgiSuexec auf On setzen.  Wenn Sie einen anderen suexec-Wrapper verwenden möchten geben Sie den Dateinamen des gewünschten suexec-Wrapper an.  Beginnt der Dateiname nicht mit einem Schrägstrich (/), wird dieser relativ zur Server-Root interpretiert.

Wenn FastCgiSuexec aktiviert ist, spielt die Position der Definitionen für statische und externe FastCGI-Anwendungen eine bedeutende Rolle.  Diese Definitionen übernehmen den Benutzer und die Gruppe aus den Anweisungen User und Group des virtuellen Servers, auf dem sie definiert wurden.  Die Anweisungen User und Group müssen vor den Definitionen der FastCGI-Anwendungen stehen.   Dies beschränkt die FastCGI-Anwendung jedoch nicht auf den virtuellen Server, auf dem sie definiert wurde. Die Anwendung kann Anforderungen aller virtuellen Server mit demselben Benutzer und derselben Gruppe bedienen.  Falls eine Anforderung für eine FastCGI-Anwendung ohne entsprechende Definition, aber mit dem richtigen Benutzer und der richtigen Gruppe empfangen wird, wird eine dynamische Instanz der Anwendung mit dem richtigen Benutzer und der richtigen Gruppe gestartet.  Dies kann dazu führen, dass es mehrere Instanzen derselben Anwendung, allerdings mit unterschiedlichen Benutzern und Gruppen, gibt.  Falls dies ein Problem darstellt, verhindern Sie die Navigation zur Anwendung von anderen virtuellen Servern oder konfigurieren Sie die virtuellen Server alle mit demselben Benutzer und derselben Gruppe.

Weitere Informationen über suexec finden Sie in der Apache-Dokumentation. Sie müssen die Auswirkungen von suexec auf die Sicherheit unbedingt verstehen.

Zugehörige Informationen