La direttiva FastCgiAccessChecker viene utilizzata per definire un'applicazione FastCGI come programma di convalida di accesso per le directory. La fase Accesso Apache precede l'autenticazione dell'utente e quindi la decisione di consentire (o meno) l'accesso alla risorsa richiesta si basa sulle intestazioni HTTP inoltrate con la richiesta. I programmi di autorizzazione basati su FastCGI si rivelano utili quando si presenta un componente dinamico alla decisione di convalida di accesso come ad esempio un'ora del giorno o se l'account di un dominio è aggiornato o meno.
Se il nome file dell'applicazione FastCGI non dispone di una definizione server esterna o statica corrispondente, viene avviato come applicazione FastCGI dinamica. Se il nome file non inizia con una barra (/), si presuppone che sia relativo al ServerRoot.
FastCgiAccessChecker viene utilizzato all'interno dei contenitori
Directory
o Location
.
<Directory htdocs/protected>
FastCgiAccessChecker fcgi-bin/access-checker
</Directory>
mod_fastcgi invia quasi tutte le variabili di ambiente standard solitamente disponibili per i gestori delle richieste CGI/FastCGI. Tutte le intestazioni restituite da un'applicazione del programma di verifica di accesso FastCGI in una risposta positiva (Stato: 200) vengono inoltrate ai sottoprocessi (richiami CGI/FastCGI) come variabili di ambiente. Tutte le intestazioni restituite in una risposta negativa vengono inoltrate al client. E' possibile ottenere la funzione che osserva la specifica FastCGI utilizzando l'opzione "-compat".
mod_fastcgi imposta la variabile di ambiente "FCGI_APACHE_ROLE" su "ACCESS_CHECKER" per indicare quale fase del programma di autorizzazione (specifico di Apache) viene eseguita.
Le risposte di personalizzazione negative provenienti dalle applicazioni del programma di autorizzazione FastCGI non sono supportate. Consultare la direttiva ErrorDocument per una soluzione (un'applicazione FastCGI può servire il documento).
Impostare la direttiva FastCgiAccessCheckerAuthoritative in modo esplicito su Off consente alla verifica di accesso di essere inoltrata ai moduli di livello inferiore (come definito nei file di Configurazione e modules.c) se l'applicazione FastCGI non riesce a garantire l'accesso.
Per default, il controllo non viene inoltrato e si avrà una
verifica di accesso non riuscita in una risposta Vietata. Si
consiglia di disabilitare il valore default.
La direttiva FastCgiAuthenticator viene utilizzata per definire un'applicazione FastCGI come programma di autenticazione per le directory. I programmi di autenticazione verificano che il richiedente sia veramente chi dice di essere mettendo in corrispondenza il nome utente e la password forniti con un elenco o un database di utenti e password conosciuti. I programmi di autenticazione basati su FastCGI sono utili quando il database utente viene gestito all'interno di un programma indipendente esistente oppure quando risiede su una macchina diversa dal server web.
Se il nome file dell'applicazione FastCGI non dispone di una definizione server esterna o statica corrispondente, viene avviato come applicazione FastCGI dinamica. Se il nome file non inizia con una barra (/) si presume che si riferisca a ServerRoot.
FastCgiAuthenticator viene utilizzato all'interno dei contenitori Directory o Location e deve comprendere una direttiva AuthType e AuthName. Viene supportato solamente il tipo di autenticazione utente Basic. Deve essere accompagnato da una richiesta o da una direttiva FastCgiAuthorizer per poter operare in modo corretto.
<Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
FastCgiAuthenticator fcgi-bin/authenticator
require valid-user
</Directory>
mod_fastcgi
invia quasi tutte le variabili di
ambiente standard generalmente disponibili per i gestori delle
richieste CGI/FastCGI. Tutte le intestazioni restituite da
un'applicazione di autenticazione
FastCGI in una risposta positiva (Stato: 200)
vengono inoltrate ai sottoprocessi (richiami CGI/FastCGI) come
variabili di ambiente. Tutte
le intestazioni restituite in una risposta negativa vengono
inoltrate al client. E' possibile ottenere la funzione che osserva
la specifica FastCGI utilizzando l'opzione
"-compat
".
Mod_fastcgi
imposta la variabile di ambiente
"FCGI_APACHE_ROLE"
su "AUTHENTICATOR" per indicare quale fase del programma
di autorizzazione (specifico di Apache) viene eseguita.
Le risposte di personalizzazione negative provenienti dalle applicazioni del programma di autorizzazione FastCGI non sono supportate. Visualizzare la direttiva ErrorDocument per una soluzione (un'applicazione FastCGI può servire il documento).
Impostare la direttiva
FastCgiAuthenticatorAuthoritative
in modo esplicito su Off
consente all'autenticazione di essere inoltrata ai moduli di livello
inferiore (come definito nei file
Configuration
e modules.c
) se l'applicazione FastCGI
non riesce ad autenticare l'utente.
L'utilizzo comune avviene insieme a un
AuthUserFile
ben protetto contenente diversi utenti
(correlato alla gestione).
Per default, il controllo non viene inoltrato e un utente sconosciuto verrà visualizzato nella risposta ad un'Autorizzazione richiesta. Si consiglia di disabilitare il valore di default.
La direttiva FastCgiAuthorizer
viene utilizzata per definire un'applicazione FastCGI
concedendo l'autorizzazione di accesso directory per directory. Gli Authorizer convalidano l'accesso o meno di un utente autenticato
alla risorsa richiesta. Gli authoriser di tipo FastCGI risultano utili principalmente nel caso di un componente dinamico per una decisione
di autorizzazione come un'orario specifico o come il pagamento o meno da parte dell'utente di determinati addebiti.
Se il nome file dell'applicazione FastCGI non dispone di una definizione server esterna o statica corrispondente, viene avviato come applicazione FastCGI dinamica. Se il nome file non inizia con una barra (/) si presuppone che si riferisca al ServerRoot.
FastCgiAuthorizer
viene utilizzato nell'ambito di container Directory
or Location
e dovo includere una direttiva di tipo AuthType e AuthName. Deve essere accompagnato da una direttiva
di autenticazione come FastCgiAuthenticator, AuthUserFile, AuthDBUserFile o
AuthDBMUserFile per poter funzionare correttamente.
<Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
AuthDBMUserFile conf/authentication-database
FastCgiAuthorizer fcgi-bin/authorizer
</Directory>
mod_fastcgi
invia quasi tutte le variabili di
ambiente standard generalmente disponibili per i gestori della
richiesta CGI/FastCGI. Tutte le intestazioni restituite da
un'applicazione di autenticazione FastCGI in una risposta positiva
(Stato: 200) vengono inoltrate ai sottoprocessi
(richiami CGI/FastCGI) come variabili di ambiente. Tutte le
intestazioni restituite in una risposta positiva vengono
inoltrate al client.
E' possibile ottenere la funzione conforme alla specifica FastCGI
utilizzando l'opzione "-compat
".
Mod_fastcgi
imposta la variabile di ambiente "FCGI_APACHE_ROLE"
su "AUTHORIZER" per indicare quale fase authorizer (specifica di Apache) viene
eseguita.
Le risposte di errore di personalizzazione dalle applicazioni del programma di autorizzazione FastCGI non sono supportate. Consultare la direttiva ErrorDocument per una soluzione (un'applicazione FastCGI può servire il documento).
Impostare la direttiva
FastCgiAuthenticatorAuthoritative
in modo esplicito su Off
consente all'autenticazione di essere inoltrata ai moduli di livello
inferiore (come definito nei file
Configuration
e modules.c
) se l'applicazione FastCGI
non riesce ad autenticare l'utente.
L'utilizzo comune avviene insieme a un
AuthUserFile
ben protetto contenente diversi utenti
(correlato alla gestione).
Per default, il controllo non viene inoltrato e un utente sconosciuto verrà visualizzato nella risposta ad un'Autorizzazione richiesta. Si consiglia di disabilitare il valore di default.
La direttiva FastCgiConfig
definisce i parametri di
default per tutte le applicazioni FastCGI dinamiche. Questa
direttiva non interessa in alcun modo le applicazioni esterne o
statiche.
Le applicazioni dinamiche non vengono avviate quando si avvia il server, ma su richiesta. Se le domande sono eccessive, vengono avviate le istanze aggiuntive dell'applicazione. Appena le domande diminuiscono , le istanze dell'applicazione vengono interrotte. Molte delle opzioni governano questo processo.
Option può essere una della seguenti (non sensibili al maiuscolo e minuscolo):
appConnTimeout
n (0 secondi)
connect()
.
Se il timeout scade, viene visualizzato SERVER_ERROR.
Per un valore diverso da zero, questo è il tempo utilizzato in
select()
per scrivere sul programma di descrizione del
file restituito da connect()
non bloccato.
Le opzioni di non blocco connect()
costituiscono
un problema su diverse piatteforme. Consultare inoltre
-idle-timeout, produce gli stessi errori ma in modo più
gestibile.idle-timeout
n (30 secondi)
error
LogLevel
).
Il timer di inattività si applica solo fino a quando una connessione
è in sospeso con l'applicazione FastCGI. Se una richiesta
viene accodata ad un'applicazione, ma l'applicazione non risponde
(scrivendo e fluttuando) in questo arco di tempo, la richiesta verrà
interrotta. Se la comunicazione è completa con l'applicazione
ma incompleta con il client (la risposta viene registrata nel
buffer), il timeout non viene applicato.autoUpdate
nessuno
-restart
.gainValue n (0.5)
gainValue
), così diminuendo il fattore di scala,
i vecchi valori saranno più pesanti rispetto al nuovo valore,
che viene
scalato di gainValue
.initial-env name[=value]
nessuno
init-start-delay n (1
secondo)
killInterval n
(300 secondi)
listen-queue-depth n (100)
maxClassProcesses n (10)
maxProcesses n (50)
minProcesses n (5)
multiThreshhold n (50)
singleThreshhold
.pass-header header
nessuno
priority n (0)
setpriority()
).processSlack n
(5 secondi)
maxProcesses
- processSlack
, il gestore dei processi richiama la politica
di interruzione.
Ciò serve a migliorare le prestazioni in caso di caricamenti
eccessivi interrompendo alcune delle istanze di applicazione più
inutilizzate prima di raggiungere maxProcesses
.restart
nessuno
restart-delay
n (5 secondi)
singleThreshhold n (0)
startDelay n (3
secondi)
startDelay
deve essere inferiore rispetto a appConnTimeout
per
poter essere effettivo.updateInterval
n (300 secondi)
appConnTimeout
n (0 secondi)
connect()
.
Se il timeout scade, viene visualizzato SERVER_ERROR.
Per un valore diverso da zero, questo è il tempo utilizzato in
select()
per scrivere sul programma di descrizione del
file restituito da connect()
non bloccato.
Le opzioni di non blocco connect()
costituiscono
un problema su diverse piatteforme. Consultare inoltre
-idle-timeout, produce gli stessi errori ma in modo più
gestibile.idle-timeout n (30 secondi)
error
LogLevel
).
Il timer di inattività si applica solo fino a quando una connessione
è in sospeso con l'applicazione FastCGI. Se una richiesta
viene accodata ad un'applicazione, ma l'applicazione non risponde
(scrivendo e fluttuando) in questo arco di tempo, la richiesta verrà
interrotta. Se la comunicazione è completa con l'applicazione
ma incompleta con il client (la risposta viene registrata nel
buffer), il timeout non viene applicato.flush nessuno
mod_fastcgi
registra i dati nel buffer in modo tale da
liberare l'applicazione il più velocemente possibile.host hostname:port
nessuno
-socket
e -host
si escludono a vicenda.Pass-header header
nessuno
socket
filename nessuno
FastCgiIpcDir
.
Le opzioni -socket
e -port
si escludono a
vicenda.
UNIX: La direttiva FastCgiIpcDir
specifica
directory come ubicazione nella quale memorizzare
(e trovare, nel caso delle applicazioni FastCGI esterne)
i file socket UNIX utilizzati per la comunicazione tra
le applicazioni e il server web. Se la directory non inizia con una
barra (/) si presume che si riferisca a
ServerRoot.
Se la directory non esiste, si tenta di crearla con i permessi
appropriati. Non specificare una directory che non si trova su un
file system locale. Se viene utilizzata la directory di default (o
un'altra directory all'interno /tmp
),
mod_fastcgi
si interromperà se il sistema cancella
periodicamente i file da /tmp
.
Windows NT: La direttiva FastCgiIpcDir specifica name come root per i collegamenti denominati utilizzati per le comunicazioni tra l'applicazione e il server Web. name deve essere nella modalità \\.\pipe\pipename La parte pipename può contenere ogni carattere diverso da una barra retroversa.
La direttiva FastCgiIpcDir
deve precedere tutte le
direttive FastCgiServer
o FastCgiExternalServer
(che fa uso dei socket UNIX). La directory deve essere leggibile,
scrivibile ed eseguibile (ricercabile) da parte del server web,
in caso contrario non deve essere accessibile a nessuno.
La direttiva FastCgiServer
definisce
filename come applicazione FastCGI statica. Se il nome file
non inizia con una barra (/)
si presuppone che si riferisca a ServerRoot.
Per default, il Gestore dei processi avvierà una istanza
dell'applicazione con la configurazione di
default specificata (tra parentesi) di seguito. Se
un'istanza dell'applicazione statica si interrompe per un qualsiasi
motivo mod_fastcgi
ne creerà un'altra per rimpiazzarla e
registrerà l'evento (nell'avvertenza
LogLevel
).
Option può essere una della seguenti (non sensibili al maiuscolo e minuscolo):
appConnTimeout
n (0 secondi)
connect()
.
Se il timeout scade, viene visualizzato SERVER_ERROR.
Per un valore diverso da zero, questo è il tempo utilizzato in
select()
per scrivere sul programma di descrizione del
file restituito da connect()
non bloccato.
Le opzioni di non blocco connect()
costituiscono
un problema su diverse piatteforme. Consultare inoltre
-idle-timeout, produce gli stessi errori ma in modo più
gestibile.idle-timeout n (30 secondi)
error
LogLevel
).
Il timer di inattività si applica solo fino a quando una connessione
è in sospeso con l'applicazione FastCGI. Se una richiesta
viene accodata ad un'applicazione, ma l'applicazione non risponde
(scrivendo e fluttuando) in questo arco di tempo, la richiesta verrà
interrotta. Se la comunicazione è completa con l'applicazione
ma incompleta con il client (la risposta viene registrata nel
buffer), il timeout non viene applicato.initial-env
name[=value]
nessuno]
nessuno
init-start-delay n(1
secondo)
Flush nessuno
mod_fastcgi
registra i dati nel buffer in modo tale da
liberare l'applicazione il più velocemente possibile.Listen-queue-depth n (100)
Pass-header header none
processes n (1)
Priority n (0)
setpriority()
).port n none
-socket
e -port
si escludono reciprocamente.Restart-delay n (5 secondi)
Socket filename (gen'd)
FastCgiIpcDir
. Questa
opzione rende l'applicazione accessibile ad altre applicazioni
(e.g. cgi-fcgi
) sulla stessa macchina o tramite
una definizione dell'applicazione FastCGI esterna (FastCgiExternalServer
).
Se non si fornisce né l'opzione -socket
né l'opzione
-port
, il modulo crea un nome file del socket del
dominio UNIX. Le opzioni -socket
e -port
si escludono reciprocamente.
La direttiva FastCgiSuexec
viene utilizzata per
abilitare il supporto per un suexec-wrapper.
FastCgiSuexec
richiede che suexec sia abilitato
in Apache (per CGI).
Per utilizzare lo stesso suexec-wrapper utilizzato da
Apache, impostare FastCgiSuexec
su On. Per utilizzare un
suexec-wrapper diverso, specificare il filename
del suexec-wrapper. Se il nome file non inizia con una barra
(/) si presuppone che si riferisca a ServerRoot.
Quando si abilita FastCgiSuexec
, l'ubicazione delle
definizioni dell'applicazione FastCGI esterna o statica è
importante. Esse ereditano l'utente e il
gruppo dalle direttive User
e
Group
nel server virtuale nel quale sono state
definite. Le direttive User
e Group
devono precedere le definizioni dell'applicazione FastCGI.
Notare che questo non limita l'applicazione FastCGI
al server virtuale nel quale sono state definite, l'applicazione
può rispondere alle richieste provenienti da un qualsiasi server
virtuale con lo stesso utente e gruppo. Se si riceve una
richiesta per un'applicazione FastCGI senza una definizione
corrispondente esistente in esecuzione con il gruppo e l'utente
corretti, viene avviata un'istanza dinamica dell'applicazione con
l'utente e il gruppo corretti. Questo può condurre a diverse
copie della stessa applicazione in esecuzione con un diverso
utente/gruppo. Se ciò costituisce un problema, impedire la
navigazione all'applicazione proveniente da altri server virtuali
oppure configurare i server virtuali con lo stesso Utente e
Gruppo.
Consultare la documentazione Apache per ulteriori informazioni su suexec (assicurarsi di comprendere chiaramente le implicazioni relative alla sicurezza).