Nginx

為“規則禁止”禁用 Nginx 日誌記錄

  • April 1, 2022

在我的 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指令

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