La directiva FastCgiAccessChecker se utiliza para definir una aplicación FastCGI como un validador de acceso por directorios. La fase Acceso Apache precede a la autentificación del usuario y por ello la decisión de permitir o no el acceso al recurso solicitado se basa en las cabeceras HTTP sometidas con la petición. Los autorizadores basados en FastCGI son útiles en principio cuando hay un componente dinámico para la decisión de validación de acceso, como puede ser una hora del día o si un dominio está al corriente.
Si el nombre de archivo de la aplicación FastCGI no tiene la correspondiente definición de servidor externa ni estática, se arranca como aplicación FastCGI dinámica. Si el nombre de archivo no comienza por barra (/), se entiende que corresponde al ServerRoot.
FastCgiAccessChecker se utiliza en contenedores de Directorios
o Ubicaciones
.
<Directory htdocs/protected>
FastCgiAccessChecker fcgi-bin/access-checker
</Directory>
mod_fastcgi envía casi todas las variables de entorno estándar que normalmente están disponibles para los manejadores de peticiones de CGI/FastCGI. Todas las cabeceras devueltas por una aplicación de comprobación de acceso FastCGI en respuestas satisfactorias (estado: 200) se pasan a subprocesos (llamadas a CGI/FastCGI) como variables de entorno. Todas las cabeceras devueltas en respuestas no satisfactorias se pasan al cliente. El funcionamiento conforme a la especificación FastCGI puede obtenerse utilizando la opción "-compat".
mod_fastcgi establece la variable de entorno "FCGI_APACHE_ROLE" en "ACCESS_CHECKER" para indicar qué fase de autorizador (específica de Apache) se está realizando.
Aún no hay soporte para las respuestas erróneas personalizadas de las aplicaciones de autorización de FastCGI. Consule la directiva ErrorDocument para buscar información (una aplicación FastCGI puede servir el documento).
Asignar Off (desactivado) explícitamente a la directiva FastCgiAccessCheckerAuthoritative, permite que la comprobación de acceso se pase a módulos de nivel inferior (según se defina en los archivos modules.c y de configuración) si la aplicación FastCGI no tiene éxito al permitir el acceso.
Por omisión, el control no se supera y una comprobación de acceso no superada dará como
resultado una respuesta Forbidden. Hay que tener mucho cuidado a la hora de deshabilitar
el valor por omisión.
La directiva FastCgiAuthenticator se utiliza para definir una aplicación FastCGI como un autentificador por directorio. Los autentificadores comprueban que el peticionario es quien dice ser, comparando el nombre de usuario y contraseña proporcionados con la lista o base de datos de los usuarios y contraseñas conocidas. Los autentificadores basados en FastCGI son útiles en principio cuando la base de datos del usuario está mantenida en un programa independiente existente o reside en una máquina que no sea el servidor web.
Si el nombre de archivo de la aplicación FastCGI no tiene la correspondiente definición de servidor externa ni estática, se arranca como aplicación FastCGI dinámica. Si el nombre de archivo no comienza por barra (/), se entiende que corresponde al ServerRoot.
FastCgiAuthenticator se utiliza en contenedores de Directorios o Ubicaciones y deben incluir una directiva AuthType y AuthName. Sólo hay soporte para el tipo de autentificación de usuario Basic. Para que funcione correctamente ha de ir acompañada por una solicitud o una directiva FastCgiAuthorizer.
<Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
FastCgiAuthenticator fcgi-bin/authenticator
require valid-user
</Directory>
mod_fastcgi
envía casi todas las variables de entorno estándar que normalmente están
disponibles para los manejadores de peticiones CGI/FastCGI. Todas las cabeceras
devueltas por una aplicación de autentificación FastCGI en respuestas satisfactorias
(estado: 200) se pasan a subprocesos (llamadas a CGI/FastCGI) como variables de entorno. Todas
las cabeceras devueltas en respuestas no satisfactorias se pasan al cliente. El
comportamiento que sigue la especificación FastCGI se puede obtener utilizando la opción
"-compat
".
Mod_fastcgi
establece la variable de entorno "FCGI_APACHE_ROLE"
en "AUTHENTICATOR" para indicar la fase de autorización (específica de Apache)
que se está realizando.
Aún no hay soporte para las respuestas erróneas personalizadas de las aplicaciones de autorización de FastCGI. Consulte la directiva ErrorDocument para buscar información (una aplicación FastCGI puede servir el documento).
Asignar Off (desactivada) explícitamente a la directiva FastCgiAuthenticatorAuthoritative
permite pasar la autentificación a módulos de nivel inferior (según esté definido en los
archivos de Configuración
y modules.c
) si la aplicación FastCGI
no autentifica al usuario.
Se suele utilizar junto con un AuthUserFile
bien protegido que tenga pocos usuarios (relacionados con el administrador).
Por omisión, el control no se supera y a un usuario desconocido se le responderá Authorization Required. Hay que tener mucho cuidado al deshabilitar el valor por omisión.
La directiva FastCgiAuthorizer
se utiliza para definir una aplicación
FastCGI como autorizador por directorio. Los autorizadores validan si un
usuario autentificado tiene permiso para acceder al recurso solicitado. Los
autorizadores basados en FastCGI son útiles fundamentalmente cuando hay un componente
dinámico para la decisión de autorización como una hora del día o si el usuario
está al corriente de pago o no.
Si el nombre de archivo de la aplicación FastCGI no tiene una definición de servidor externa o estática correspondiente, se arranca como una aplicación FastCGI dinámica. Si el nombre de archivo no comienza por barra (/), se entiende que corresponde al ServerRoot.
FastCgiAuthorizer
se utiliza en contenedores Directorio
o Ubicación
y deben incluir una directiva AuthType y AuthName. Ha de ir acompañado de una
directiva de autentificación como FastCgiAuthenticator, AuthUserFile, AuthDBUserFile o
AuthDBMUserFile para que funcione adecuadamente.
<Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
AuthDBMUserFile conf/authentication-database
FastCgiAuthorizer fcgi-bin/authorizer
</Directory>
mod_fastcgi
envía casi todas las variables de entorno estándar
normalmente disponibles a manejadores de peticiones CGI/FastCGI. Todas
las cabeceras devueltas por una aplicación de autentificación FastCGI en respuestas satisfactorias
(estado: 200) se pasan a subprocesos (llamadas a CGI/FastCGI) como variables
de entorno. Todas las cabeceras devueltas en respuestas no satisfactorias se pasan al
cliente. El comportamiento de la especificación FastCGI se puede obtener
utilizando la opción "-compat
".
Mod_fastcgi
establece la variable de entorno "FCGI_APACHE_ROLE"
en "AUTHORIZER" para indicar la fase de autorizador (concreta de Apache) que
se está realizando.
Las respuestas de error personalizadas de las aplicaciones del autorizador FastCGI.no están soportadas. Consulte la directiva ErrorDocument para buscar información (una aplicación FastCGI puede servir el documento).
Asignar Off (desactivada) explícitamente a la directiva FastCgiAuthenticatorAuthoritative
permite pasar la autentificación a módulos de nivel inferior (según esté definido en los
archivos de Configuración
y modules.c
) si la aplicación FastCGI
no autentifica al usuario.
Se suele utilizar junto con un AuthUserFile
bien protegido que tenga pocos usuarios (relacionados con el administrador).
Por omisión, el control no se supera y a un usuario desconocido se le responderá Authorization Required. Hay que tener mucho cuidado al deshabilitar el valor por omisión.
La directiva FastCgiConfig
define los parámetros por omisión
de todas las aplicaciones FastCGI dinámicas. Esta directiva no afecta
de ninguna manera a las aplicaciones externas o estáticas.
Las aplicaciones dinámicas no se arrancan al iniciar el servidor, sino que hay que solicitarlas. Si la demanda es fuerte, se arrancan instancias adicionales de la aplicación. A medida que disminuye la demanda, las instancias de aplicaciones se van cerrando. Muchas de las opciones controlan este proceso.
Opción puede ser alguna de las siguientes (indistintamente en may/min):
appConnTimeout n (0 segundos)
connect()
de bloqueo.
Si transcurre el tiempo indicado, se producirá un SERVER_ERROR. Para valores
distintos de cero, es el tiempo utilizado en un select()
para
escribir en el descriptor de archivo devuelto por la función connect()
no de bloqueo.
Las funciones connect()
que no son de bloqueo son
problemáticas en algunas plataformas. Consulte también -idle-timeout, que genera
resultados parecidos pero de una forma más transportable.idle-timeout n (30 segundos)
error
LogLevel
).
El tiempo de inactividad se aplica sólo mientras se mantiene una conexión con la
aplicación FastCGI. Si una petición se pone en cola de una aplicación,
pero la aplicación no responde (escribiendo ni desechando) en este periodo,
la petición se cancelará. Si se completa la comunicación con la aplicación
pero no con el cliente (la respuesta va a un almacenamiento intermedio),
no se aplica el tiempo de espera. autoUpdate none
-restart
.gainValue n (0,5)
gainValue
), asignándoles
una ponderación menor en comparación con el valor actual, que se escala según
gainValue
.initial-env name[=valor]
none
init-start-delay n (1
segundo)
killInterval n (300 segundos)
listen-queue-depth n (100)
maxClassProcesses n (10)
maxProcesses n (50)
minProcesses n (5)
multiThreshhold n (50)
singleThreshhold
en su lugar.pass-header header none
priority n (0)
setpriority()
).processSlack n (5 segundos)
maxProcesses
- processSlack
, el gestor de procesos invoca la política de cancelación.
Esto se hace para aumentar el rendimiento en cargas mayores, cancelando algunas de las
instancias de aplicación menos activas antes de alcanzar el valor de maxProcesses
.restart none
restart-delay n (5 segundos)
singleThreshhold n (0)
startDelay n (3 segundos)
startDelay
ha de ser menor
que appConnTimeout
.updateInterval n (300 segundos)
appConnTimeout n (0 segundos)
connect()
de bloqueo.
Si transcurre el tiempo indicado, se producirá un SERVER_ERROR. Para valores
distintos de cero, es el tiempo utilizado en un select()
para
escribir en el descriptor de archivo devuelto por la función connect()
no de bloqueo.
Las funciones connect()
que no son de bloqueo son
problemáticas en algunas plataformas. Consulte también -idle-timeout, que genera
resultados parecidos pero de una forma más transportable.idle-timeout n (30 segundos)
error
LogLevel
).
El tiempo de inactividad se aplica sólo mientras se mantiene una conexión con la
aplicación FastCGI. Si una petición se pone en cola de una aplicación,
pero la aplicación no responde (escribiendo ni desechando) en este periodo,
la petición se cancelará. Si se completa la comunicación con la aplicación
pero no con el cliente (la respuesta va a un almacenamiento intermedio),
no se aplica el tiempo de espera. flush none
mod_fastcgi
envía datos a almacenamiento intermedio para
liberar la aplicación tan rápido como sea posible. host nombreSistPral:puerto none
-socket
y -host
son mutuamente excluyentes.Pass-header cabecera none
socket nombrearchivo none
FastCgiIpcDir
.
Las opciones -socket
y -port
son mutuamente excluyentes.
UNIX: La directiva FastCgiIpcDir
especifica directory
como el lugar en el que almacenar (y buscar, en el caso de aplicaciones FastCGI
externas) los archivos socket de UNIX utilizados para la comunicación entre las
aplicaciones y el servidor web. Si el directorio no comienza por barra (/), se
entiende que corresponde a
ServerRoot.
Si el directorio no existe, se intentará crear con los permisos
correspondientes. No especifique un directorio que no esté en un sistema de archivos
local. Si utiliza el directorio por omisión (u otro dentro de /tmp
),
mod_fastcgi
dejará de funcionar si el sistema elimina periódicamente
los archivos de /tmp
.
Windows NT: La directiva FastCgiIpcDir especifica name como raíz para los conductos denominados utilizados en la comunicación entre la aplicación y el servidor web. naame debe tener el formato \\.\pipe\pipename. La parte pipename puede contener cualquier carácter salvo la barra invertida.
La directiva FastCgiIpcDir
debe predecer a cualquier directiva
FastCgiServer
o FastCgiExternalServer
(que
utilizan sockets UNIX). El servidor web debe poder leer, escribir
y ejecutar (hacer búsquedas) en el directorio, porque de lo contrario nadie podría acceder al
mismo.
La directiva FastCgiServer
define nombrearchivo como una aplicación
FastCGI estática. Si el nombre de archivo no comienza por barra (/), se entiende que es
relativo a ServerRoot.
Por omisión, el Gestor de procesos arrancará una instancia de la aplicación con
la configuración por omisión especificada (entre paréntesis) más abajo. Si una
instancia de aplicación estática desapareciera por cualquier causa, mod_fastcgi
generaría otra para sustituirla y anotaría el suceso (en el aviso LogLevel
).
Opción puede ser alguna de las siguientes (indistintamente en may/min):
appConnTimeoutn (0 segundos)
connect()
de bloqueo.
Si transcurre el tiempo indicado, se producirá un SERVER_ERROR. Para valores
distintos de cero, es el tiempo utilizado en un select()
para
escribir en el descriptor de archivo devuelto por la función connect()
no de bloqueo.
Las funciones connect()
que no son de bloqueo son
problemáticas en algunas plataformas. Consulte también -idle-timeout, que genera
resultados parecidos pero de una forma más transportable.idle-timeout n (30 segundos)
error
LogLevel
).
El tiempo de inactividad se aplica sólo mientras se mantiene una conexión con la
aplicación FastCGI. Si una petición se pone en cola de una aplicación,
pero la aplicación no responde (escribiendo ni desechando) en este periodo,
la petición se cancelará. Si se completa la comunicación con la aplicación
pero no con el cliente (la respuesta va a un almacenamiento intermedio),
no se aplica el tiempo de espera. initial-env name[=valor] none]
none
init-start-delay n(1 segundo)
Flush none
mod_fastcgi
envía datos a almacenamiento intermedio para
liberar la aplicación tan rápido como sea posible. Listen-queue-depth n (100)
Pass-header cabecera none
processes n (1)
Priority n (0)
setpriority()
).port n none
-socket
y -port
son mutuamente excluyentes. Restart-delay n (5 segundos)
Socket nombrearchivo (gen'd)
FastCgiIpcDir
. Esta opción hace que
otras aplicaciones puedan acceder a la aplicación (p.e. cgi-fcgi
)
en la misma máquina o a través de una definición de aplicación FastCGI externa (FastCgiExternalServer
).
Si no se proporcionan ni la opción -socket
ni -port
, el módulo
genera un nombre de archivo socket de dominio de UNIX. Las opciones -socket
y -port
son mutuamente excluyentes.
La directiva FastCgiSuexec
se utiliza para habilitar soporte para
un suexec-wrapper. FastCgiSuexec
necesita que suexec esté
habilitado en Apache (para CGI). Para utilizar el mismo suexec-wrapper
que utiliza Apache, establezca FastCgiSuexec
en On. Para
utilizar un suexec-wrapper distinto, especifique el nombre de archivo
del suexec-wrapper. Si el nombre de archivo no comienza por barra (/) se supone que
es relativo al directorio
ServerRoot.
Cuando FastCgiSuexec
está habilitado, la ubicación de las definiciones
de aplicaciones FastCGI externas o estáticas es importante. Heredan el grupo y
usuario de las directivas User
y Group
del servidor virtual
en las que fueron definidas. Las directivas User
y Group
deben preceder a las definiciones de aplicación FastCGI. Hay que tener en
cuenta que esto no limita la aplicación FastCGI al servidor virtual en el
que fue definida. A la aplicación se le permite dar servicio a las peticiones
desde cualquier servidor virtual con el mismo grupo y usuario. Si se recibe una
petición para una aplicación FastCGI sin que haya una definición existente coincidente
en ejecución con el usuario y grupo correctos, se arranca una instancia de la aplicación
con el grupo y usuario correctos. Esto puede desembocar en múltiples copias
de la misma aplicación ejecutándose con distinto usuario/grupo. Si supusiera un
problema, anule el acceso de navegación a la aplicación desde otros servidores virtuales
o configure los servidores virtuales con el mismo usuario y grupo.
Consulte la documentación de Apache para obtener más información sobre suexec (asegúrese de comprender totalmente las implicaciones en cuestiones de seguridad).