我們觀察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...