W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Nginx 日志主要有兩種:access_log(訪問日志) 和 error_log(錯誤日志)。
access_log 主要記錄客戶端訪問 Nginx 的每一個請求,格式可以自定義。通過 access_log 你可以得到用戶地域來源、跳轉(zhuǎn)來源、使用終端、某個 URL 訪問量等相關(guān)信息。
log_format 指令用于定義日志的格式,語法: ?log_format name string;
? 其中 name 表示格式名稱,string 表示定義的格式字符串。log_format 有一個默認(rèn)的無需設(shè)置的組合日志格式。
默認(rèn)的無需設(shè)置的組合日志格式
log_format combined '$remote_addr - $remote_user [$time_local] '
' "$request" $status $body_bytes_sent '
' "$http_referer" "$http_user_agent" ';
access_log 指令用來指定訪問日志文件的存放路徑(包含日志文件名)、格式和緩存大小,語法:?access_log path [format_name [buffer=size | off]];
? 其中 path 表示訪問日志存放路徑,format_name 表示訪問日志格式名稱,buffer 表示緩存大小,off 表示關(guān)閉訪問日志。
log_format 使用示例:在 access.log 中記錄客戶端 IP 地址、請求狀態(tài)和請求時間
log_format myformat '$remote_addr $status $time_local';
access_log logs/access.log myformat;
需要注意的是:log_format 配置必須放在 http 內(nèi),否則會出現(xiàn)警告。Nginx 進程設(shè)置的用戶和組必須對日志路徑有創(chuàng)建文件的權(quán)限,否則,會報錯。
定義日志使用的字段及其作用:
字段 | 作用 |
---|---|
$remote_addr與$http_x_forwarded_for | 記錄客戶端IP地址 |
$remote_user | 記錄客戶端用戶名稱 |
$request | 記錄請求的URI和HTTP協(xié)議 |
$status | 記錄請求狀態(tài) |
$body_bytes_sent | 發(fā)送給客戶端的字節(jié)數(shù),不包括響應(yīng)頭的大小 |
$bytes_sent | 發(fā)送給客戶端的總字節(jié)數(shù) |
$connection | 連接的序列號 |
$connection_requests | 當(dāng)前通過一個連接獲得的請求數(shù)量 |
$msec | 日志寫入時間。單位為秒,精度是毫秒 |
$pipe | 如果請求是通過HTTP流水線(pipelined)發(fā)送,pipe值為“p”,否則為“.” |
$http_referer | 記錄從哪個頁面鏈接訪問過來的 |
$http_user_agent | 記錄客戶端瀏覽器相關(guān)信息 |
$request_length | 請求的長度(包括請求行,請求頭和請求正文) |
$request_time | 請求處理時間,單位為秒,精度毫秒 |
$time_iso8601 | ISO8601標(biāo)準(zhǔn)格式下的本地時間 |
$time_local | 記錄訪問時間與時區(qū) |
error_log 主要記錄客戶端訪問 Nginx 出錯時的日志,格式不支持自定義。通過查看錯誤日志,你可以得到系統(tǒng)某個服務(wù)或 server 的性能瓶頸等。因此,將日志利用好,你可以得到很多有價值的信息。
error_log 指令用來指定錯誤日志,語法: ?error_log path [level];
? 其中 path 表示錯誤日志存放路徑,level 表示錯誤日志等級,日志等級包括 debug、info、notice、warn、error、crit、alert、emerg,從左至右,日志詳細程度逐級遞減,即 debug 最詳細,emerg 最少,默認(rèn)為 error。
注意:?error_log off
? 并不能關(guān)閉錯誤日志記錄,此時日志信息會被寫入到文件名為 off 的文件當(dāng)中。如果要關(guān)閉錯誤日志記錄,可以使用如下配置:
Linux 系統(tǒng)把存儲位置設(shè)置為空設(shè)備
error_log /dev/null;
http {
# ...
}
Windows 系統(tǒng)把存儲位置設(shè)置為空設(shè)備
error_log nul;
http {
# ...
}
另外 Linux 系統(tǒng)可以使用 tail 命令方便的查閱正在改變的文件,?tail -f filename
? 會把 filename 里最尾部的內(nèi)容顯示在屏幕上, 并且不斷刷新, 使你看到最新的文件內(nèi)容。Windows 系統(tǒng)沒有這個命令,你可以在網(wǎng)上找到動態(tài)查看文件的工具。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: