nginx 不记录特定 ip 地址的请求

nginx 不记录特定 ip 地址的请求

我正在尝试不记录来自特定 IP 地址的请求,如下所示:

location = / {
    index index.php;
    if ( $remote_addr = "spe.ci.fic.ip" )
    {
        access_log off;
    }

}

但它不起作用,为什么?

答案1

您使用了正确的语法

location ~ ^/(css|js) {
    if ( $remote_addr = "127.0.0.1" ) 
    {
        access_log off;
    }
}

在您的示例中,nginx 不会仅为 '/' 位置写入日志。

答案2

您可以使用该语句抑制特定日志的特定 IP if

下列

map $remote_addr $log_ip {
  "192.168.0.10" 0;
  "192.168.0.11" 0;
  ~192\.168\.1\..* 0;
  default 1;
}

location /thing/ {
  access_log /var/log/nginx/access-thing.log if=$log_ip;
  access_log /var/log/nginx/access-thing-json.log combined_json;
  ...
  proxy_pass http://proxy/thing/;
}

不会将来自 IP 地址192.168.0.10192.168.0.11以及整个192.168.1.xxx范围的访问记录到日志文件中access-thing.log,但它会记录到日志文件中access-thing-json.log

相关内容