Ocultar os parâmetros get dos logs de acesso no nginx

4

Eu gostaria de habilitar o log de acesso para ver estatísticas sobre nosso serviço, o problema que estou tendo é que o $ request no formato de logs de acesso, salva todos os parâmetros GET (o que faz sentido porque sua parte do pedido)

mas eu gostaria de esconder essa informação, então ao invés de ver isso nos logs:

98.207.174.147 - - [26/Apr/2014:23:59:09 +0000] "GET /v1/api.json?parameter1=value1&paramter2=value2" HTTP/1.1" 200 13449 "-" "httperf/0.9.0"

Eu gostaria de ver

98.207.174.147 - - [26/Apr/2014:23:59:09 +0000] "GET /v1/api.json" HTTP/1.1" 200 13449 "-" "httperf/0.9.0"
    
por rorra 27.04.2014 / 02:00

1 resposta

7

Você pode usar a diretiva log_format de ngx_http_log_module .

por exemplo, este formato mostraria apenas o uri sem qualquer string de consulta:

http {
       log_format combined_no_query '$remote_addr - $remote_user [$time_local] '
           '"$uri" $status $body_bytes_sent '
           '"$http_referer" "$http_user_agent"';
       //other configs ...
     }

 server {
       access_log /var/log/nginx/access.log combined_no_query
       //... 
      }

Observe a variável $uri , que é usada para registrar apenas o uri sem nenhuma string de consulta.

doc para a diretiva log_format : link

para mais variáveis: link

    
por 27.04.2014 / 04:57