Nginx
nginx 不記錄特定 IP 地址的請求
我試圖不記錄從特定 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.10
和192.168.0.11
以及整個範圍的訪問記錄192.168.1.xxx
到 logfileaccess-thing.log
中,但它會登錄到 logfileaccess-thing-json.log
中。