nginx日誌主要有兩種:訪問日誌和錯誤日誌。存取日誌主要記錄用戶端存取nginx的每一個請求,格式可以自訂;錯誤日誌主要記錄用戶端存取nginx出錯時的日誌,格式不支援自訂。兩種日誌都可以選擇性關閉。
透過存取日誌,你可以得到使用者地理來源、跳躍來源、使用終端機、某個URL訪問量等相關資訊;透過錯誤日誌,你可以得到系統某個服務或server的效能瓶頸等。因此,將日誌好好利用,你可以得到很多有價值的資訊。
存取日誌
[Access.log]
#
log_format main '$remote_addr $remote_user [$time_local] "$request" $http_host ' '$status $upstream_status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $ssl_protocol $ssl_cipher $upstream_addr ' '$request_time $upstream_response_time';
說明:
#變數名稱 |
#變數描述 |
範例說明 |
$remote_addr |
#客戶端位址 |
113.140. 15.90 |
#$remote_user |
# #客戶端使用者名稱 | - |
#$time_local |
存取時間和時區 | ##18/Jul/ 2012:17:00:01 0800 |
#$request |
#請求的URI 和 |
|
$http_host 請求位址,即瀏覽器中你輸入的位址(IP或域名) |
||
img.alipay.com | 10.253.70.103
$status |
|
請求狀態 | #200
####### ############$upstream_status########################upstream###狀態################################ ##############200######### |
|
$body_bytes_sent |
傳送給客戶端檔案內容大小 |
#547 |
#$http_referer |
跳轉來源 |
#"https://cashier.alipay.com.../" |
$http_user_agent |
用戶終端代理程式 |
#"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1 ; Trident/4.0; SV1; GTB7.0; .NET4.0C; |
$ssl_protocol |
SSL協定版本 |
TLSv1 |
$ssl_cipher |
交換資料中的演算法 |
RC4-SHA |
$upstream_addr |
後台upstream的位址,即真正提供服務的主機位址 |
10.228.35.247:80 |
$request_time |
整個請求的總時間 0.205 |
|
#$upstream_response_time |
##要求過程中,upstream 回應時間 |
0.002 |
備註:$http_host的值和你在瀏覽器裡輸入的值有關。
錯誤日誌
#錯誤訊息 |
#錯誤說明 |
---|---|
"upstream prematurely(過早的)closed connection" |
#請求uri的時候出現的異常,是由於upstream還未返回應答給用戶時用戶斷掉連接造成的,對系統沒有影響,可以忽略 |
"recv() failed (104: Connection reset by peer)" |
#(1)伺服器的並發連線數超過了其承載量,伺服器會將其中一些連接Down掉; # #(2)客戶關掉了瀏覽器,而伺服器也正在傳送資料給客戶端; #(3)瀏覽器端按了Stop |
"(111: Connection refused) while connecting to upstream" |
使用者在連線時,若遇到後端 upstream掛掉或不通,會收到該錯誤 |
"(111: Connection refused) while reading response header from upstream" |
使用者在連線成功後讀取資料時,若會遇到後端 upstream掛掉或不通,會收到該錯誤 |
"(111: Connection refused) while sending request to upstream " |
Nginx和upstream連接成功後發送資料時,若遇到後端upstream掛掉或不通,會收到該錯誤 |
#"(110: Connection timed out) while connecting to upstream" |
nginx連接後面的upstream時逾時 |
" (110: Connection timed out) while reading upstream" |
#nginx讀取來自upstream的回應時逾時 |
"(110: Connection timed out) while reading response header from upstream" |
#nginx讀取來自upstream的回應頭時逾時 |
##"(110: Connection timed out) while reading upstream" |
nginx讀取來自 upstream的回應時逾時 |
"(104: Connection reset by peer) while connecting to upstream" |
#upstream發送了 RST,將連接重置 |
"upstream sent invalid header while reading response header from upstream" |
upstream發送的回應頭無效 |
"upstream sent no valid HTTP/1.0 header while reading response header from upstream" | ##upstream發送的回應頭無效
|
用於設定允許接受的客戶端請求內容的最大值,預設值是1M,client發送的body超過了設定值 |
|
##"reopening logs" |
用戶發送 kill -USR1指令####### |
“正常關閉”, |
#USEkill -WINCH 指令 |
##「上游內部沒有伺服器」 |
上游部署server |
##「連線到上游時沒有即時上游」 |
upstream下下 #伺服器全部掛了 |
##"SSL_do_handshake() failed" |
SSL 握手失敗 |
"SSL_write( ) 失敗( SSL :) 發送給客戶端時“ |
|
# 」 (13:權限被拒絕)讀取上游時「 |
# |
ssl_session_cache Large和小等原因導致創建 |
|
##ssl_session_cache大小等原因創建 |
"send()失敗(111:連線被拒絕)「 |
## |
以上是nginx日誌怎麼看的詳細內容。更多資訊請關注PHP中文網其他相關文章!