Estou testando o nginx e quero gerar variáveis para os arquivos de log. Como posso fazer isso e qual arquivo de log será (acesso ou erro).
83
Você pode enviar valores de variável nginx através de cabeçalhos. Útil para o desenvolvimento.
add_header X-uri "$uri";
e você verá nos cabeçalhos de resposta do seu navegador:
X-uri:/index.php
Às vezes faço isso durante o desenvolvimento local.
Também é útil para informar se uma subseção está sendo executada ou não. Polvilhe-o dentro de suas cláusulas para ver se eles estão sendo usados.
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
add_header X-debug-message "A static file was served" always;
...
}
location ~ \.php$ {
add_header X-debug-message "A php file was used" always;
...
}
Portanto, visitar um URL como http://www.example.com/index.php acionará o último cabeçalho, enquanto visitar http://www.example.com/img/my-ducky.png acionará o cabeçalho anterior.
add_header
funcionará apenas em solicitações bem-sucedidas . A documentação afirma que só pode ser aplicada a respostas com os códigos 200, 204, 301, 302 ou 304. Portanto, não pode ser usada para depurar erros HTTP.add_header
qual retornará o cabeçalho, independentemente do código de resposta. Por exemplo,add_header X-debug-message "A php file was used" always;
deve funcionar mesmo para 500 códigos de erro.Você pode retornar uma sequência simples como resposta HTTP:
fonte
Você pode definir um formato de log de acesso personalizado usando a
log_format
diretiva que registra as variáveis de seu interesse.fonte
error_log
paradebug
que você possa ver o valor das variáveis e do bloco que são executados. Exemploerror_log file.log debug
-
no log, mas estão realmente vazias no código nginx, você não deve procurar-
a qualquer momento. Às vezes, isso confunde os usuários.Outra opção é incluir o módulo echo ao criar o nginx ou instalar o OpenResty, que é o nginx incluído em várias extensões (como echo.)
Então você pode simplesmente polvilhar sua configuração com instruções como:
fonte
echo_log
diretiva em desenvolvimento.