Назад | Перейти на главную страницу

Скрыть параметры получения из журналов доступа на 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"

Ты можешь использовать log_format директива ngx_http_log_module .

например, в этом формате будет отображаться только 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
       //... 
      }

Обратите внимание на $uri переменная, которая используется для регистрации только uri без какой-либо строки запроса.

документ для log_format директива: http://nginx.org/en/docs/http/ngx_http_log_module.html

для дополнительных переменных: http://nginx.org/en/docs/http/ngx_http_core_module.html#var_uri