====== nginx log ======
===== 특정 변수를 로그로 남기기 =====
nginx 의 변수들을 로그로 남기고 싶으면 ''main''외의 ''access_log''를 하나 더 세팅하여 거기서 각종 변수의 값을 출력하는 방식을 써도 된다.
log_format vars '$remote_addr - $remote_user [$time_local] "$request" : "$document_root" "$fastcgi_script_name"'; # 각종 변수들을 출력한다.
access_log /var/log/nginx/vars.log vars;
===== 로그 끄기 =====
location /resources {
access_log off;
}
===== 특정 GET query parameter masking =====
* [[https://stackoverflow.com/questions/19265766/how-to-not-log-a-get-request-parameter-in-the-nginx-access-logs|How to not log a get request parameter in the nginx access logs? - Stack Overflow]]
* [[https://forum.nginx.org/read.php?11,234313,234314|Masking query string password in access log]]
log_format filter '$remote_addr - $remote_user [$time_local] '
'"$temp" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
# Other Configs
server {
#Server Configs
location / { # location 을 구체적으로 명시하는게 나을 듯 보임.
set $temp $request;
if ($temp ~ (.*)password=[^&]*(.*)) {
set $temp $1password=****$2;
}
access_log /opt/current/log/nginx_access.log filter;
}
}