Nginx

nginx:如何為($http_status == 200)禁用 access_log

  • April 21, 2020

有什麼方法可以禁用access_log200 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 ...

有沒有辦法做到這一點?

請試試

map $status $loggable
{ 
   ~^[2] 0; 
   default 1; 
} 

access_log /var/log/nginx/access_log combined if=$loggable;

這會導致不記錄響應程式碼為 2xx 的請求。

ngx_http_log_module 文件

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