Nginx
為“規則禁止”禁用 Nginx 日誌記錄
在我的 Nginx 配置中,我設置了一些 IP 塊,以抵禦垃圾郵件發送者和機器人。
這是非常有效的,但結果是,我的錯誤日誌很快就會被這樣的錯誤消息填滿:
2015/12/16 00:56:28
$$ error $$27748#0:*120462 訪問被規則禁止,客戶端:167.114.xxx.xxx,伺服器:bla bla ….
現在我不想完全禁用錯誤日誌記錄,因為我想在出現問題時找出問題所在。我只想禁用這些“規則禁止”消息的記錄。
知道怎麼做嗎?
如此處所述,使用條件日誌記錄(
access_log
指令):啟用條件日誌
條件日誌記錄允許從訪問日誌中排除瑣碎或不重要的日誌條目。在 NGINX 中,條件日誌記錄由 access_log 指令的 if 參數啟用。
例如,可以排除 HTTP 狀態碼為 2XX(成功)和 3XX(重定向)的請求:
map $status $loggable { ~^[23] 0; default 1; } access_log /path/to/access.log combined if=$loggable;
編輯: 正如@zsero 在評論中描述的那樣,條件日誌只支持
access_log
- 而不是error_log
指令。