有没有办法禁用access_log
200 HTTP 响应代码?我尝试使用条件,但似乎access_log
指令不允许在if
块中使用。我试过这个:
access_log /var/log/nginx/access_log;
if ($http_status == 200){
access_log off; # <---------
}
但它无效
# nginx -t
nginx: [emerg] "access_log" directive is not allowed here ...
有什么办法可以做到这一点?
答案1
请尝试
map $status $loggable
{
~^[2] 0;
default 1;
}
access_log /var/log/nginx/access_log combined if=$loggable;
这导致响应代码为 2xx 的请求不会被记录。