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自動創建。
