隐藏从nginx的访问日志中获取参数

我想启用访问日志,以便查看有关我们的服务的统计信息,我遇到的问题是访问日志格式的$请求,保存所有的GET参数(这是有道理的,因为它的请求的一部分)

但我想隐藏这些信息,所以不要在日志中看到这些信息:

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" 

我想看看

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

你可以使用ngx_http_log_module log_format指令。

例如,这个格式只会显示没有任何查询string的uri:

 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 //... } 

注意$urivariables只用于logging没有任何查询string的uri。

doc for log_format指令: http : log_format

更多的variables: http : //nginx.org/en/docs/http/ngx_http_core_module.html#var_uri