<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    配置 Nginx 訪問與錯誤日志

    VSole2022-07-05 22:29:13

    Nginx是一個開放源代碼的高性能HTTP和反向代理服務器,負責處理Internet上某些最大站點的負載。在管理NGINX網絡服務器時,你要執行的最常見任務之一就是檢查日志文件。

    在對服務器或應用程序問題進行故障排除時,知道如何配置和讀取日志非常有用,因為它們提供了詳細的調試信息。

    Nginx用兩種類型的日志記錄其事件:訪問日志和錯誤日志。訪問日志記錄有關客戶端請求的信息,錯誤日志記錄有關服務器和應用程序問題的信息。

    本教程概述了如何配置和讀取Nginx訪問和錯誤日志。配置Nginx訪問日志的格式與位置,配置錯誤日志格式與位置,默認的日志文件所在位置,讀取和理解Nginx日志文件每個字段。

    配置Nginx訪問日志

    每當處理客戶請求時,Nginx都會在訪問日志中生成一個新記錄。每個事件記錄都包含一個時間戳,并包含有關客戶端和所請求資源的各種信息。訪問日志可以顯示訪問者的位置,訪問者的訪問的頁面等。

    log_format指令允許你定義記錄日志的格式。access_log指令啟用并設置日志文件的位置和使用的格式。

    access_log指令的最基本語法如下:

    access_log log_file log_format;
    

    其中log_file是日志文件的完整路徑,log_format是日志文件使用的格式。可以在http,server或location指令的上下文中啟用訪問日志。

    默認情況下,Nginx主配置文件中的http指令配置了全局訪問日志格式。

    http {
      ...
      access_log  /var/log/nginx/access.log;
      ...
    }
    

    /etc/nginx/nginx.conf

    為獲得更好的可維護性,建議為每個服務器設置一個單獨的訪問日志文件。在server指令中設置的access_log指令將覆蓋在http指令中設置的access_log。

    http {
      ...
      access_log  /var/log/nginx/access.log;
      ...
    
      server {
        server_name domain.com
        access_log  /var/log/nginx/domain.access.log;
        ...
      }
    }
    

    /etc/nginx/conf.d/domain.com.conf

    如果未指定日志格式,Nginx將使用預定義的combined組合格式,如下所示:

    log_format combined '$remote_addr - $remote_user [$time_local] '
                        '"$request" $status $body_bytes_sent '
                        '"$http_referer" "$http_user_agent"';
    

    要更改日志記錄格式,請覆蓋默認設置或定義一個新設置。例如,定義一個名為 main的新日志記錄格式,它將用添加X-Forwarded-Forheader的值來擴展combined格式,在http或server中添加以下定義指令:

    log_format  custom  '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';
    

    要使用新日志格式,請在日志文件后指定其名稱,如下所示:

    access_log  /var/log/nginx/access.log custom;
    

    雖然訪問日志提供了非常有用的信息。但它會占用磁盤空間,并可能影響服務器性能。如果服務器資源不足,并且網站繁忙,則可能要禁用訪問日志。為此,請將access_log偽指令的值設置為off。理論上你不會出現這種情況,Nginx會自動刪除前期的日志文件:

    access_log off;
    

    配置錯誤日志

    Nginx將應用程序和常規服務器錯誤的消息寫入錯誤日志文件。如果你在Web應用程序中遇到錯誤,則錯誤日志是你開始進行排查問題的第一個位置。

    error_log指令啟用并設置錯誤日志的位置和嚴重性級別。它采用以下格式,可以在http,server或location上下文中進行設置:

    error_log log_file log_level
    

    log_level參數設置日志記錄級別。以下是按嚴重性從低到高列出的級別:

    • debug-調試消息。
    • info -信息性消息。
    • notice -公告。
    • warn - 警告。
    • error -處理請求時出錯。
    • crit -關鍵問題。需要立即采取行動。
    • alert -警報。必須立即采取行動。
    • emerg - 緊急情況。系統處于無法使用的狀態。

    每個日志級別包括更高級別。例如,如果你將日志級別設置為warn,則Nginx還將記錄error,crit,alert和emerg消息。未指定log_level參數時,默認為error。

    默認情況下,error_log指令在主nginx.conf文件內的http指令上下文中定義:

    http {
      ...
      error_log  /var/log/nginx/error.log;
      ...
    }
    

    /etc/nginx/nginx.conf

    與訪問日志相同,建議為每個服務器設置一個單獨的錯誤日志文件,該文件將覆蓋更高級別的設置如http指令上下文。

    例如,要將domain.com的錯誤日志設置為warn,你可以使用:

    http {
      ...
      error_log  /var/log/nginx/error.log;
      ...
    
      server {
        server_name domain.com
        error_log  /var/log/nginx/domain.error.log warn;
        ...
      }
    }
    

    無論何時修改配置文件,都必須重新加載Nginx服務,以使更改生效。

    日志文件的位置

    在大多數Linux發行版中,例如Ubuntu ,CentOS和Debian。默認情況下,訪問和錯誤日志位于/var/log/nginx目錄中。

    讀取和理解Nginx日志文件

    你可以使用cat,less,grep,cut ,awk等命令打開和解析nginx日志文件。以下是使用默認的Nginx日志格式的訪問日志文件的記錄:

    192.168.33.1 - - [15/Oct/2019:19:41:46 +0000] "GET / HTTP/1" 200 396 "-" "Mozilla/0 (X11; Linux x86_64) AppleWebKit/536 (KHTML, like Gecko) Chrome/38120 Safari/536"
    

    讓我們細分Nginx日志文件記錄的每個字段意味著什么:

    • $remote_addr-192.168.33.1-發出請求的客戶端的IP地址。
    • $remote_user ---HTTP身份驗證用戶。未設置用戶名時,此字段顯示-。
    • [$time_local]-[15/Oct/2019:19:41:46 +0000]

    本地服務器時間。

    • "$request" -"GET / HTTP/1.1"-請求類型,路徑和協議。
    • $status -200-服務器響應代碼。
    • $body_bytes_sent -396-服務器響應的大小(以字節為單位)。
    • "$http_referer" -"-"-引薦網址。
    • "$http_user_agent" -Mozilla/5.0 ...-客戶端的用戶代理(網絡瀏覽器)。

    使用tail命令實時觀看日志文件記錄:

    tail -f access.log
    
    日志文件log
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    loguru 是一個 Python 簡易且強大的第三方日志記錄庫,該庫旨在通過添加一系列有用的功能來解決標準記錄器的注意事項,從而減少 Python 日志記錄的痛苦。
    wangan Cookie 指引
    2022-11-23 12:05:32
    實體標簽可代替 Cookie,用以追蹤個別使用者,并容許我們可更深入了解和改善 wangan 服務。例如,收集網站和應用程式的使用數據、收集 wangan 用戶基本的統計信息并分析相關的趨勢。我們對第三方的任何追蹤技術概不承擔任何責任;B. 我們可能會將通過追蹤技術收集所得的信息與我們收集所得關于您的其他信息合并。
    假設Mysql中canal_test庫下有一張表policy_cred,需要統計實時統計policy_status狀態為1的mor_rate的的變化趨勢,并標注比率的風險預警等級。?本次安裝的canal版本為1.1.2,Canal版本最后在1.1.1之后。server端采用MQ模式,MQ選用Kafka。服務器系統為Centos
    本篇文章是MongoDB數據庫信息泄露漏洞復現,記錄了實際中常見的MongoDB數據庫未授權訪問漏洞并如何使用,主要分為七個部分:MongoDB簡介、MongoDB安裝、MongoDB基本操作、MongoDB相關工具使用、MongoDB漏洞復現、MongoDB實戰和MongoDB防御措施。
    很早就想專門寫一篇關于內網的文章,一直沒有騰出空來,萬萬沒想到,寫下這篇文章的時候,竟然是我來某實驗室實習的時間段:)
    今天安利一款仿真釣魚網站和仿真蜜罐工具——Goblin,也稱哥布林。項目地址:https://github.
    Nginx是一個開放源代碼的高性能HTTP和反向代理服務器,負責處理Internet上某些最大站點的負載。在對服務器或應用程序問題進行故障排除時,知道如何配置和讀取日志非常有用,因為它們提供了詳細的調試信息。Nginx用兩種類型的日志記錄其事件:訪問日志和錯誤日志
    防御者可以利用操作系統的原生設施和支持框架來構建質量檢測。檢測潛在有趣的 .NET 行為的一種方法是監控 .NET 執行事件的公共語言運行時 使用日志。這篇文章中,我們將確定防御者如何(可能)利用 .NET 使用日志進行檢測和取證響應,調查規避檢測日志監控的方法,并討論捕獲使用日志篡改行為的潛在監控機會。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类