文章來源
1、日誌介紹
nginx有兩種日誌,一種是訪問日誌,一種是錯誤日誌。
訪問日誌中記錄的是客戶端對服務器的所有請求。
錯誤日誌中記錄的是在訪問過程中,因爲某些原因發生的錯誤信息。
2、訪問日誌和錯誤日誌
(1)錯誤日誌
error_log path level
錯誤日誌的格式是沒有辦法定義的。需要寫清楚錯誤日誌的存放路徑,相對路徑或者絕對路徑都可以。
第二個參數是日誌的級別。一般的級別有debug|info|notice|warm|error|crit|alert|emerg。一般就配置爲error。
一般就是在main,http,server,location;模塊中配置。
在啓動nginx的時候,日誌的目錄路徑是不會自動創建,需要創建好所有的目錄,這樣nginx才能夠成功啓動,否則會報找不到目錄路徑,而日誌文件本身是nginx自動創建。
當訪問網頁報500錯誤的時候,就可以在這個日誌下找找原因,是不是哪個文件沒有權限,或者丟失等等。
所以在測試環境或者生產環境配置這個文件都是非常有必要的。
(2)訪問日誌
log_format name format
上邊是配置訪問日誌的格式,這個的作用就是配置在實際中需要統計的字段,並不是一定將所有的字段都要統計出來。
name字段自己定義即可,mainlog、mylog,都可以,但是多個name不能重複。
format就是日誌的格式,只要將自己需要的字段寫上即可。
下邊是字段的類型,選擇需要的填寫即可。
參數 | 說明 |
$remote_addr | 客戶端地址 |
$remote_user | 客戶端用戶名稱 |
$time_local | 訪問時間和時區 |
$request | 請求的URI和HTTP協議 |
$http_host | 請求地址 |
$status | HTTP請求狀態 |
$upstream_status | upstream狀態 |
$body_bytes_sent | 發送給客戶端文件內容大小 |
$http_referer | url跳轉來源 |
$http_user_agent | 瀏覽器的信息 |
$ssl_protocol | SSL協議版本 |
$ssl_cipher | 交換數據中的算法 |
$upstream_addr | 後臺upstream的地址,即真正提供服務的主機地址 |
$request_time | 整個請求的總時間 |
$upstream_response_time | 請求過程中,upstream響應時間 |
示例:
格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
某一條訪問
192.168.0.137 - - [02/Apr/2019:11:52:46 +0800] "GET /admin/index.php?act=common&op=pending_matters HTTP/1.1" 200 401 "http://192.168.0.133/admin/index.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36" "-"
access_log path format [buffer=sieze]
訪問日誌也不是一定需要開的。根據自己的實際情況配置。
path就是路徑,寫相對路徑或者絕對路徑皆可。
format是上邊配置的訪問日誌的格式,只需要將format的name寫上即可。
buffer寫不寫都行。如果需要配置寫buffer=16k即可。
在啓動nginx的時候,日誌的目錄路徑是不會自動創建,需要創建好所有的目錄,這樣nginx才能夠成功啓動,否則會報找不到目錄路徑,而日誌文件本身是nginx自動創建。