SSI#
O módulo é um filtro que processa comandos SSI (Server Side Includes) em respostas que passam por ele. Habilita ou desabilita o processamento de comandos SSI em respostas. Permite preservar o campo de cabeçalho Por padrão, o campo de cabeçalho é removido pois o conteúdo da resposta é modificado durante o processamento e pode conter elementos gerados dinamicamente ou partes que são alteradas independentemente da resposta original. Define o tamanho mínimo para partes de uma resposta armazenada em disco, a partir do qual faz sentido enviá-las usando sendfile. Se habilitado, suprime a saída da string "[an error occurred while processing the directive]" se um erro ocorreu durante o processamento SSI. Habilita o processamento de comandos SSI em respostas com os tipos MIME especificados além de Define o comprimento máximo dos valores de parâmetros em comandos SSI. Os comandos SSI têm o seguinte formato genérico: Os seguintes comandos são suportados: Define um bloco que pode ser usado como um stub no comando include. O bloco pode conter outros comandos SSI. O comando tem o seguinte parâmetro: nome do bloco. Exemplo: Define alguns parâmetros usados durante o processamento SSI, especificamente: uma string que é exibida se um erro ocorre durante o processamento SSI. Por padrão, a seguinte string é exibida: uma string de formato passada para a função O formato "%s" é adequado para exibir tempo em segundos. Exibe o valor de uma variável. O comando tem os seguintes parâmetros: o nome da variável. o método de codificação. Os valores possíveis incluem um parâmetro não-padrão que define uma string a ser exibida se uma variável não estiver definida. Por padrão, O comando substitui a seguinte sequência de comandos: Executa uma inclusão condicional. Os seguintes comandos são suportados: Apenas um nível de aninhamento é atualmente suportado. O comando tem o seguinte parâmetro: expressão. Uma expressão pode ser: verificação de existência de variável: comparação de uma variável com um texto: comparação de uma variável com uma expressão regular: Se um text contém variáveis, seus valores são substituídos. Uma expressão regular pode conter capturas posicionais e nomeadas que podem ser usadas posteriormente através de variáveis, por exemplo: Inclui o resultado de outra requisição em uma resposta. O comando tem os seguintes parâmetros: especifica um arquivo incluído, por exemplo: especifica uma requisição incluída, por exemplo: Várias requisições especificadas em uma página e processadas por servidores proxy ou FastCGI/uwsgi/SCGI/gRPC executam em paralelo. Se o processamento sequencial for desejado, o parâmetro wait deve ser usado. um parâmetro não-padrão que nomeia o bloco cujo conteúdo será exibido se a requisição incluída resultar em um corpo vazio ou se um erro ocorrer durante o processamento da requisição, por exemplo: O conteúdo do bloco de substituição é processado no contexto da requisição incluída. um parâmetro não-padrão que instrui a aguardar que uma requisição seja completamente finalizada antes de continuar com o processamento SSI, por exemplo: um parâmetro não-padrão que instrui a escrever um resultado bem-sucedido do processamento da requisição na variável especificada, por exemplo: O tamanho máximo da resposta é definido pela diretiva subrequest_output_buffer_size: Define um valor de uma variável. O comando possui os seguintes parâmetros: o nome da variável. o valor da variável. Se um valor atribuído contém variáveis, seus valores são substituídos. horário atual no fuso horário local. O formato é definido pelo comando config com o parâmetro timefmt. horário atual em GMT. O formato é definido pelo comando config com o parâmetro timefmt.Exemplo de Configuração#
location / {
ssi on;
# ...
}
Diretivas#
ssi#
ssi_last_modified#
Last-Modified
da resposta original durante o processamento SSI para facilitar o cache de resposta.ssi_min_file_chunk#
ssi_silent_errors#
ssi_types#
text/html
. O valor especial "*" corresponde a qualquer tipo MIME.ssi_value_length#
Comandos SSI#
<!--# command parameter1=value1 parameter2=value2 ... -->
block
#name
#<!--# block name="one" -->
stub
<!--# endblock -->
config
#errmsg
#`[an error occurred while processing the directive]`
timefmt
#strftime()
usada para exibir data e hora. Por padrão, o seguinte formato é usado:`"%A, %d-%b-%Y %H:%M:%S %Z"`
echo
#var
#encoding
#none
, url
, e entity
. Por padrão, entity
é usado.default
#(none)
é exibido.<!--# echo var="name" default="no" -->
<!--# if expr="$name" --><!--# echo var="name" --><!--#
else -->no<!--# endif -->
if
#<!--# if expr="..." -->
...
<!--# elif expr="..." -->
...
<!--# else -->
...
<!--# endif -->
expr
#<!--# if expr="$name" -->
<!--# if expr="$name = text" -->
<!--# if expr="$name != text" -->
<!--# if expr="$name = /text/" -->
<!--# if expr="$name != /text/" -->
<!--# if expr="$name = /(.+)@(?P<domain>.+)/" -->
<!--# echo var="1" -->
<!--# echo var="domain" -->
<!--# endif -->
include
#file
#<!--# include file="footer.html" -->
virtual
#<!--# include virtual="/remote/body.php?argument=value" -->
stub
#<!--# block name="one" --> <!--# endblock -->
<!--# include virtual="/remote/body.php?argument=value" stub="one" -->
wait
#<!--# include virtual="/remote/body.php?argument=value" wait="yes" -->
set
#<!--# include virtual="/remote/body.php?argument=value" set="one" -->
location /remote/ {
subrequest_output_buffer_size 64k;
# ...
}
set
#var
#value
#Variáveis Internas#
$date_local
#$date_gmt
#