É possível registrar os dados de resposta no log de acesso do nginx?
13
Estou tentando imprimir os dados de resposta para fins de desenvolvimento / depuração. Não consegui encontrar uma pergunta semelhante ou qualquer informação sobre isso. Se o fizer, adicione um comentário.
No código, parece que estamos colocando os primeiros 1000 bytes do chunk de resposta e colocando no resp_body, ou seja, nesta linha "resp_body = string.sub (ngx.arg [1], 1, 1000)". Existe uma razão específica para que isso seja 1000.
doon
No meu caso, não está me dando um corpo de resposta, mas está me dando o caminho do log como este "resp_body:" "access_log / usr / local / openresty / nginx / logs / access.logupstreamlog" Você pode sugerir o que há de errado?
O módulo echo e o exemplo fornecido falam sobre o registro dos cabeçalhos / corpo da solicitação, mas quero registrar o corpo da resposta. Obrigado petermolanar.
Respostas:
Use
body_filter_by_lua
para atribuir o corpo da solicitação a uma variável nginx, aqui está um exemplo:fonte
use o módulo ngx_lua
como isso
Na direita
location
fonte
ngx.DEBUG
. CRIT pode ficar impresso para o console, enviado a toda a equipe sysadmin, etc ...Eu encontrei este por exemplo , e acho que o módulo echo também pode fazê-lo.
fonte