nginx的access_log的過濾網上有很多文章,是通過map定義一個變數,然后把那個變數配置到access_log的if即可,
比如:
map $status $loggable { ~^[23] 0; default 1; } access_log /path/to/access.log combined if=$loggable;
定義一個變數loggable,http狀態碼是2XX、3XX的回傳0,其他情況回傳1,然后access_log當loggable為0時就不記錄,
但是我現在有兩條件,一個是固定url,一個是負載均衡的心跳檢測,
對于組合條件,這里的if不支持運算,
最后是在mpa定義變數時default用上一個變數的值解決的,配置如下:
map $http_user_agent $health { default 1; ELB-HealthChecker/2.0 0; } map $uri $loggable { default $health; ~^/spicalURI* 0; } access_log /var/log/nginx/access.log main if=$loggable;
定義$loggable時用 default $health 達到了“或”的效果,
這樣nginx 的訪問日志里就排除的這些訪問量特別大又沒啥資訊量的項,避免日志過大,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/556637.html
標籤:其他
下一篇:返回列表
