Nginx日誌檔案的配置

2021-07-28 06:27:24 字數 2047 閱讀 1194

nginx日誌檔案的配置

nginx的日誌檔案,預設在nginx程式安裝目錄的logs二級目錄下。   

與nginx日誌相關的指令有兩條

log_format,用來設定日誌的記錄格式。

access_log,用來指定日誌檔案的存放路徑、格式和快取大小。

這兩條指令在nginx配置檔案中,可以在http之間,也可以在虛擬主機之間,即server之間。

log_format指令

用來設定日誌檔案的記錄格式,語法如下

log_format name format[format ……]
其中,name表示定義的格式名稱,format,表示定義的格式樣式。

log_format有乙個預設的、無須設定的combined日誌格式設定,相當於apache的combined日誌格式,如下

也可以自定義日誌的記錄格式,注意,log_format指令設定的name名稱,在nginx配置檔案中,是不能重複的。

如果,將nginx伺服器作為web伺服器,唯一負載均衡裝置、squid、nginx反向**之後,就不能獲取到客戶端的真實ip位址了。

原因,經過反向**之後,由於在客戶端和web伺服器之間,增加了中間層,因此,web伺服器無法直接拿到客戶端的ip,通過$remote_addr變數拿到的是反向**伺服器的ip位址。

但是,反向**伺服器在**請求的http頭資訊中,可以增加x-forwarded-for資訊,用以記錄原有的客戶端ip位址和原有客戶端請求的伺服器位址。

此時,需要用log_format指令來設定日誌格式,讓日誌記錄x-forwarded-for資訊中的ip位址,即客戶的真實ip。

比如,建立乙個名為mylogformat的日誌格式,再用$http_x_forwarded_for變數記錄使用者的x_forwarded-for ip位址。

引數說明

$remote_addr——用來記錄ip位址

$http_x_forwarded_for——用來記錄ip位址

$remote_user——用來記錄遠端客戶端使用者名稱

$time_local——用來記錄訪問時間與時區

$request——用來記錄請求url與http協議

$status——用來記錄請求狀態,比如,成功時狀態為200,頁面找到時狀態為404等

$body_bytes_sent——用來記錄傳送給客戶端的檔案主體內容大小

$http_referer——用來記錄是從哪個頁面鏈結訪問過來的

$http_user_agent——用來記錄客戶端瀏覽器的相關資訊

access_log指令

指定日誌檔案存放路徑,語法如下

access_log path [format[buffer=size | off]]
引數說明

path——表示日誌檔案的存放路徑。

format——表示使用log_format指令設定的日誌格式的名稱。

buffer=size——表示設定記憶體緩衝區的大小,比如,可以設定buffer=32k。

如果不記錄日誌,可以使用如下指令關閉日誌記錄

access_log off;

nginx的日誌檔案配置

log format 設定日誌格式 access log 指定日誌檔案存放路徑 2 log foramt 2.1 指令引數 3.1 指令引數 access log path format buffer size off path表示日誌檔案存放路徑,format表示日誌格式名稱,buffer表示記憶...

nginx日誌檔案的配置

1 日誌介紹 nginx有兩種日誌,一種是訪問日誌,一種是錯誤日誌。訪問日誌中記錄的是客戶端對伺服器的所有請求。錯誤日誌中記錄的是在訪問過程中,因為某些原因發生的錯誤資訊。2 訪問日誌和錯誤日誌 1 錯誤日誌 error log path level 錯誤日誌的格式是沒有辦法定義的。需要寫清楚錯誤日...

nginx開啟日誌和配置日誌檔案路徑

error log 可以指定任意存放日誌的目錄 錯誤日誌級別,常見的錯誤日誌級別有 debug info notice warn error crit alert emerg 級別越高記錄的資訊越少。生產場景一般是 warn error crit 這三個級別之一 關閉error log的方法 err...