A diretiva FastCgiAccessChecker é utilizada para definir um aplicativo FastCGI como um validador de acesso por diretório. A fase Apache Access precede a autenticação de usuário e assim a decisão de permitir (proibir) acesso ao recurso solicitado é baseado nos cabeçalhos HTTP enviados com o pedido. Autorizadores baseados em FastCGI são úteis principalmente quando existe um componente dinâmico para a decisão de validação de acesso como uma hora do dia ou se uma conta de domínio está atualizada.
Se o nome de arquivo do aplicativo FastCGI não possuir uma definição de servidor estática ou externa, ele é iniciado como o aplicativo FastCGI. Se o nome de arquivo não começar com uma barra (/), assume-se que ele seja relativo ao ServerRoot.
FastCgiAccessChecker é utilizado dentro de um contêiner de Diretório
ou Localização
.
<Directory htdocs/protected>
FastCgiAccessChecker fcgi-bin/access-checker
</Directory>
mod_fastcgi envia aproximadamente todas as variáveis de ambiente padrão geralmente disponíveis para identificadores de pedido CGI/FastCGI. Todos os cabeçalhos retornados por um aplicativo FastCGI access-checker com resposta bem sucedida (Status: 200) são passados para subprocessos (invocações CGI/FastCGI) como variáveis de ambiente. Todos os cabeçalhos retornados com resposta malsucedida são passados adiante para o cliente. Comportamento compatível com a especificação FastCGI pode ser obtido utilizando-se a opção "-compat".
mod_fastcgi define a variável de ambiente "FCGI_APACHE_ROLE" para "ACCESS_CHECKER" para indicar qual (específico para Apache) fase de autorizador está sendo realizada.
Respostas de falha personalizadas do aplicativo autorizador FastCGI não são suportadas. Consulte a diretiva ErrorDocument para uma solução alternativa (um aplicativo FastCGI pode servir o documento).
Definir a diretiva FastCgiAccessCheckerAuthoritative explicitamente para Off permite que a verificação de acesso seja passada para módulos de nível inferior (conforme definido nos arquivos modules.c) se o aplicativo FastCGI falhar na permissão de acesso.
Por padrão, controle não é passado adiante e uma verificação de
acesso falhada resultará em uma reporta de Proibição. Desativar o
padrão deve ser cuidadosamente considerado.
A diretiva FastCgiAuthenticator é utilizada para definir um aplicativo FastCGI como uma autenticação por diretório. Autenticadores verificam se o solicitador é quem afirma ser correspondendo o nome de usuário e a senha fornecidos com a lista ou banco de dados de usuários e senhas conhecidos. Autenticadores baseados em FastCGI são úteis principalmente quando o banco de dados do usuário é mantido dentro de um programa independente ou está localizado em uma máquina diferente do servidor Web.
Se o nome de arquivo do aplicativo FastCGI não possuir uma definição de servidor estática ou externa, ele é iniciado como o aplicativo FastCGI. Se o nome de arquivo não começar com uma barra (/), assume-se que ele seja relativo ao ServerRoot.
FastCgiAuthenticator é utilizado dentro de contêiners de Diretório ou Localização e devem incluir uma diretiva AuthType e AuthName. Apenas o tipo de autenticação de usuário Básico é suportado. Ele deve estar acompanhado por um diretiva requer ou FastCgiAuthorizer para funcionar corretamente.
<Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
FastCgiAuthenticator fcgi-bin/authenticator
require valid-user
</Directory>
mod_fastcgi
envia aproximadamente todas as variáveis
de ambiente padrão geralmente disponíveis para identificadores de pedido
CGI/FastCGI. Todos os cabeçalhos retornados por um aplicativo de
autenticação FastCGI com resposta bem sucedida (Status: 200) são passados
para subprocessos (invocações CGI/FastCGI) como variáveis
de ambiente. Todos os cabeçalhos retornados com resposta malsucedida
são passados adiante para o cliente. Comportamento compatível com a
especificação FastCGI pode ser obtido utilizando-se a opção
"-compat
".
Mod_fastcgi
define a variável de ambiente
"FCGI_APACHE_ROLE" para "AUTHENTICATOR" para
indicar qual fase do autorizador (específico para Apache) está sendo
realizada.
Respostas de falha personalizadas do aplicativo autorizador FastCGI não são suportadas. Consulte a diretiva ErrorDocument, para verificar se existe uma alternativa (um aplicativo FastCGI pode atender o documento).
Definir a diretiva FastCgiAuthenticatorAuthoritative
explicitamente para Off permite que a autenticação seja
passada para módulos de nível mais baixo (conforme definido nos
arquivos de Configuração
e modules.c
) se o
aplicativo FastCGI falhar na autenticação do usuário.
Uma utilização comum para isto é a interseção com um AuthUserFile
bem protegido
que contenha poucos usuários (relacionados a administração).
Por padrão, controle não é passado adiante e um usuário desconhecido resultará em uma resposta de Autorização Necessária. Desativar o padrão deve ser cuidadosamente considerado.
A diretriz FastCgiAuthorizer
é utilizada para definir um aplicativo FastCGI
como um autorizador por diretório. Os autorizadores validam
se um usuário autenticado tem permissão de acesso a um recurso solicitado. Os autorizadores baseados em FastCGI
são úteis principalmente quando existe um componente dinâmico para a decisão de
autorização, como uma hora do dia ou se o usuário pagou ou não suas contas.
Se o nome do arquivo do aplicativo FastCGI não possuir uma definição de servidor estática ou externa, ele é iniciado como o aplicativo FastCGI. Se o nome de arquivo não começar com uma barra (/), assume-se que ele seja relativo ao ServerRoot.
O FastCgiAuthorizer
é utilizado nos contêineres Diretório
ou Localização
e deve incluir uma diretriz AuthType e AuthName. Ele deve ser acompanhado por uma diretriz de autenticação como FastCgiAuthenticator, AuthUserFile, AuthDBUserFile ou AuthDBMUserFile para funcionar corretamente.
<Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
AuthDBMUserFile conf/authentication-database
FastCgiAuthorizer fcgi-bin/authorizer
</Diretório>
mod_fastcgi
envia aproximadamente todas as variáveis
de ambiente geralmente disponíveis para identificadores de pedido
CGI/FastCGI. Todos os cabeçalhos retornados por um aplicativo de
autenticação FastCGI com resposta bem sucedida (Status: 200) são passados
para subprocessos (invocações CGI/FastCGI) como variáveis
de ambiente. Todos os cabeçalhos retornados em uma
resposta malsucedida são passados para o cliente. Comportamento
compatível com a especificação FastCGI pode ser obtido
utilizando-se a opção "-compat
".
Mod_fastcgi
define a variável de ambiente "FCGI_APACHE_ROLE"
como "AUTHORIZER" para indicar qual fase do autorizador (específica do Apache) está sendo executada.
Respostas de falha de personalização de aplicativos do autorizador FastCGI não são suportadas. Consulte a diretiva ErrorDocument para uma solução alternativa (um aplicativo FastCGI pode servir o documento).
Definir a diretiva FastCgiAuthenticatorAuthoritative
explicitamente para Off permite que a autenticação seja
passada para módulos de nível mais baixo (conforme definido nos
arquivos de Configuração
e modules.c
) se o
aplicativo FastCGI falhar na autenticação do usuário.
Uma utilização comum para isto é a interseção com um AuthUserFile
bem protegido
que contenha poucos usuários (relacionados a administração).
Por padrão, controle não é passado adiante e um usuário desconhecido resultará em uma resposta de Autorização Necessária. Desativar o padrão deve ser cuidadosamente considerado.
A diretiva FastCgiConfig
define os parâmetros padrão
para todos os aplicativos FastCGI. Esta diretiva não afeta
aplicativos estáticos ou externos de maneira alguma.
Aplicativos dinâmicos não são iniciados na inicialização do servidor, mas sob demanda. Se a demanda for pesada, instâncias de aplicativos adicionais são iniciadas. A medida que a demanda for acabando, as instâncias de aplicativo são canceladas. Várias das opções governam este processo.
Opção pode ser (sem distinção de maiúsculas/minúsculas):
appConnTimeout
n (0 segundos)
connect()
deve ser
utilizado. Se o tempo limite expirar, ocorre um resultado
SERVER_ERROR. Para valores diferentes de zero, esta é a
quantidade de tempo utilizada em select()
para gravar
ao descritor do arquivo retornado por um connect().
não
bloqueador
Connect()
não bloqueador causa problemas em algumas
plataformas. Veja também -idle-timeout, que produz
resultados semelhantes, mas de maneira mais portátil. idle-timeout
n (30 segundos)
LogLevel
de erro
). O
temporizador de inatividade se aplica apenas se uma conexão estiver
pendente com o aplicativo FastCGI. Se um pedido for colocado em
fila para um aplicativo, mas o aplicativo não responder (gravando ou
esvaziando) dentro deste período, o pedido será abortado. Se a
comunicação for concluída com o aplicativo mas incompleta com o
cliente (a resposta é colocada em buffer), o tempo limite não se
aplica. autoUpdate none
-restart
.gainValue n (0.5)
gainValue
), portanto,
deixá-los menores deixa-os mais pesados na comparação com o valor
atual, que é escalado por gainValue
.initial-env name[=value]
none
init-start-delay n (1
second)
killInterval n
(300 segundos)
listen-queue-depth n (100)
maxClassProcesses n (10)
maxProcesses n (50)
minProcesses n (5)
multiThreshhold n (50)
singleThreshhold
é utilizado. pass-header header none
priority n (0)
setpriority()
).
processSlack n
(5 segundos)
maxProcesses - processSlack
, o
gerenciador de processo invocará o critério de cancelamento.
Isto serve para melhorar o desempenho em cargas maiores cancelando
algumas das instâncias de aplicativo mais inativas antes
de alcançar o valor maxProcesses
.restart none
restart-delay
n (5 segundos)
singleThreshhold n (0)
startDelay n (3
segundos)
startDelay
deve ser menor que o
valor appConnTimeout
para ter efeito.updateInterval
n (300 segundos)
appConnTimeout
n (0 segundos)
connect()
deve ser
utilizado. Se o tempo limite expirar, ocorre um resultado
SERVER_ERROR. Para valores diferentes de zero, esta é a
quantidade de tempo utilizada em select()
para gravar
ao descritor do arquivo retornado por um connect().
não
bloqueador
Connect()
não bloqueador causa problemas em algumas
plataformas. Veja também -idle-timeout, que produz
resultados semelhantes, mas de maneira mais portátil. idle-timeout
n (30 segundos)
LogLevel
de erro
). O
temporizador de inatividade se aplica apenas se uma conexão estiver
pendente com o aplicativo FastCGI. Se um pedido for colocado em
fila para um aplicativo, mas o aplicativo não responder (gravando ou
esvaziando) dentro deste período, o pedido será abortado. Se a
comunicação for concluída com o aplicativo mas incompleta com o
cliente (a resposta é colocada em buffer), o tempo limite não se
aplica. flush none
mod_fastcgi
faz buffer
de dados para liberar o aplicativo o mais rápido possível. host nome do host:porta
none
-socket
e -host
são mutuamente exclusivas.
Pass-header cabeçalho
none
socket
nome do arquivo none
FastCgiIpcDir
.
As opções -socket
e -port
são mutuamente
exclusivas.
UNIX: A diretiva FastCgiIpcDir
especifica
diretório como o local para armazenar (e procurar, no caso
de aplicativos externos FastCGI) os arquivos de soquete UNIX
utilizados para comunicação entre os aplicativos e o servidor Web.
Se o diretório não começar com uma barra (/), assume-se que ele
seja relativo ao
ServerRoot.
Se o diretório não existir, é feita uma tentativa de criá-lo com as
permissões apropriadas. Não especifique um diretório que não esteja
em um sistema de arquivos local.
Se você utilizar o diretório padrão (ou outro diretório
dentro de /tmp
), mod_fastcgi
será quebrado, se seu sistema excluir periodicamente os
arquivos de /tmp
.
Windows NT: A diretiva FastCgiIpcDir especifica nome como a raiz para os canais nomeados utilizados para comunicação entre o aplicativo e o servidor Web. O nome deve estar no formato \\.\pipe\nome do canal A parte nome do canal pode conter qualquer caractere que não seja uma barra invertida.
A diretiva FastCgiIpcDir
deve preceder qualquer
diretiva FastCgiServer
ou
FastCgiExternalServer
(que utiliza soquetes UNIX). O diretório deve ser legível, gravável e
executável (pesquisável) pelo servidor Web, do contrário, não deve
ser acessível para qualquer pessoa.
A diretiva FastCgiServer
define nome do arquivo
como o aplicativo FastCGI estático. Se o nome do arquivo não começar
com uma barra (/), assume-se que ele seja relativo ao
ServerRoot.
Por padrão, o Gerenciador de Processo iniciará uma
instância do aplicativo com a configuração padrão
especificada (em parênteses) abaixo. Se uma instância de
aplicativo estática for cancelada por qualquer motivo,
mod_fastcgi
iniciará outra para
substitui-la e registrará o evento em log (no
LogLevel
de
aviso).
Opção pode ser (sem distinção de maiúsculas/minúsculas):
appConnTimeout
n (0 segundos)
connect()
deve ser
utilizado. Se o tempo limite expirar, ocorre um resultado
SERVER_ERROR. Para valores diferentes de zero, esta é a
quantidade de tempo utilizada em select()
para gravar
ao descritor do arquivo retornado por um connect().
não
bloqueador
Connect()
não bloqueador causa problemas em algumas
plataformas. Veja também -idle-timeout, que produz
resultados semelhantes, mas de maneira mais portátil. idle-timeout
n (30 segundos)
LogLevel
de erro
). O
temporizador de inatividade se aplica apenas se uma conexão estiver
pendente com o aplicativo FastCGI. Se um pedido for colocado em
fila para um aplicativo, mas o aplicativo não responder (gravando ou
esvaziando) dentro deste período, o pedido será abortado. Se a
comunicação for concluída com o aplicativo mas incompleta com o
cliente (a resposta é colocada em buffer), o tempo limite não se
aplica. initial-env
nome[=valor] none]
none
init-start-delay
n(1
second)
Flush none
mod_fastcgi
faz buffer
de dados para liberar o aplicativo o mais rápido possível. Listen-queue-depth n (100)
Pass-header
cabeçalho none
processes n (1)
Priority n (0)
setpriority()
).
port n none
-socket
e -port
são mutuamente exclusivas. Restart-delay
n (5 segundos)
Socket
nome do arquivo (gen'd)
FastCgiIpcDir
. Esta opção torna o aplicativo
disponível para outros aplicativos (por exemplo,
cgi-fcgi
) na mesma máquina ou através de uma definição
de aplicativo FastCGI externa (FastCgiExternalServer
).
Se nenhuma das opções, -socket
e -port
,
forem fornecidas, o módulo gera um nome de arquivo de soquete de domínio
UNIX. As opções -socket
e -port
são mutuamente exclusivas.
A diretiva FastCgiSuexec
é utilizada para ativar
suporte para um suexec-wrapper. FastCgiSuexec
requer que suexec seja ativado no Apache (para CGI).
Para utilizar o mesmo suexec-wrapper em uso pelo Apache, defina
FastCgiSuexec
para On. Para utilizar um
suexec-wrapper diferente, especifique nome do arquivo
do suexec-wrapper. Se o nome do arquivo não começar com uma
barra (/), assume-se que ele seja relativo ao
ServerRoot.
Quando FastCgiSuexec
está ativado, a localização de
definições de aplicativos FastCGI estáticas ou externas é
importante. Elas herdam seus usuários e grupos das diretivas User
e Group
do servidor virtual em que são
definidas. As diretivas User
e Group
devem preceder definições de aplicativo FastCGI. Note que isto
não limita o aplicativo FastCGI para o servidor virtual
em que são definidos, é permitido que o aplicativo ofereça
serviços para pedidos a partir de qualquer servidor virtual com o mesmo
usuário e grupo. Se um pedido for recebido para um aplicativo FastCGI
sem uma definição correspondente em execução com o usuário e grupo
correto, uma instâncias dinâmica do aplicativo é iniciada
com o usuário e grupo corretos. Isto pode fazer com que várias
cópias do mesmo aplicativo sejam executadas com diferentes
usuário/grupo. Se isto for um problema, impeça navegação
para o aplicativo a partir de outros servidores virtuais ou configure
os servidores virtuais com o mesmo Usuário e Grupo.
Veja mais informações sobre suexec na documentação do Apache (certifique-se de compreender completamente as implicações de segurança).