3 Nginx日誌管理 含Nginx日誌切割

2021-10-25 11:18:01 字數 1945 閱讀 3566

我們觀察nginx的server段,可以看到如下類似資訊

#access_log  logs/host.access.log  main;

這說明 該server, 它的訪問日誌的檔案是  logs/host.access.log ,

使用的格式」main」格式.

除了main格式,你可以自定義其他格式.

main格式是什麼?

main格式是我們定義好一種日誌的格式,並起個名字,便於引用.

以上面的例子, main型別的日誌,記錄的 remote_addr.... http_x_forwarded_for等選項.

1: 日誌格式 是指記錄哪些選項

預設的日誌格式: main

如預設的main日誌格式,記錄這麼幾項

遠端ip- 遠端使用者/使用者時間 請求方法(如get/post) 請求體body長度 referer**資訊

http-user-agent使用者**/蜘蛛 ,被**的請求的原始ip

http_x_forwarded_for:在經過**時,**把你的本來ip加在此頭資訊中,傳輸你的原始ip

2: 宣告乙個獨特的log_format並命名

在下面的server/location,我們就可以引用 mylog

在server段中,這樣來宣告

nginx允許針對不同的server做不同的log ,(有的web伺服器不支援,如lighttp)

access_log logs/access_8080.log mylog;   

宣告log   log位置          log格式;

實際應用: shell+定時任務+nginx訊號管理,完成日誌按日期儲存

分析思路:

凌晨00:00:01,把昨天的日誌重新命名,放在相應的目錄下

再usr1資訊號控制nginx重新生成新的日誌檔案

具體指令碼:

#!/bin/bash

base_path='/usr/local/nginx/logs'

log_path=$(date -d yesterday +"%y%m")

day=$(date -d yesterday +"%d")

mkdir -p $base_path/$log_path

mv $base_path/access.log $base_path/$log_path/access_$day.log

#echo $base_path/$log_path/access_$day.log

kill -usr1 `cat /usr/local/nginx/logs/nginx.pid`

定時任務

crontab 編輯定時任務

01 00 * * * /***/path/b.sh  每天0時1分(建議在02-04點之間,系統負載小)

nginx 學習筆記 3 nginx管理

nginx可以通過向其傳送訊號來進行管理。預設情況下主程序的程序id寫到檔案 usr local nginx logs nginx.pid中。當然也可以在配置檔案中自定義該pid檔案,自定義使用pid指令來進行修改。主程序支援如下訊號 term,int fast shutdown quit grac...

nginx學習 3 Nginx 核心配置詳解

說明 main 配置影響nginx全域性的指令。一般有執行nginx伺服器的使用者組,nginx程序pid存放路徑,日誌存放路徑,配置檔案引入,允許生成worker process數等。event 配置影響nginx伺服器或與使用者的網路連線。有每個程序的最大連線數,選取哪種事件驅動模型處理連線請求...

3 Nginx目錄和配置語法

指令 值user 出於安全考慮,預設是nginx nobody worker processes 工作程序數,一般來說,設定與cpu的核心數相同即可 error log 儲存錯誤日誌的路徑,可以設定error log的級別 pidnginx 程序id user nginx worker proces...