Nginx

nginx 不記錄特定 IP 地址的請求

  • February 21, 2022

我試圖不記錄從特定 IP 地址發出的請求,如下所示:

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

}

但它不起作用,為什麼?

你使用正確的語法

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

在您的範例中,nginx 不僅僅為“/”位置寫入日誌。

if您可以使用該語句抑制特定日誌的特定 IP 。

以下

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到 logfileaccess-thing.log中,但它會登錄到 logfileaccess-thing-json.log中。

引用自:https://serverfault.com/questions/488572