![nginx 不记录特定 ip 地址的请求](https://linux22.com/image/608124/nginx%20%E4%B8%8D%E8%AE%B0%E5%BD%95%E7%89%B9%E5%AE%9A%20ip%20%E5%9C%B0%E5%9D%80%E7%9A%84%E8%AF%B7%E6%B1%82.png)
我正在尝试不记录来自特定 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.10
和192.168.0.11
以及整个192.168.1.xxx
范围的访问记录到日志文件中access-thing.log
,但它会记录到日志文件中access-thing-json.log
。