一、日志管理

先來看看ngnix的配置文件的server段

接下來我們解釋一下默認(rèn)格式的具體意思

#log_format main ‘$remote_addr(遠(yuǎn)程IP) – $remote_user(遠(yuǎn)程用戶) [$time_local](訪問時(shí)間) “$request”(請(qǐng)求方式) ‘
# ‘$status(狀態(tài)302、404、401、403等) $body_bytes_sent(請(qǐng)求體 body 長度等) “$http_referer”(referer來源信息) ‘
# ‘”$http_user_agent(用戶代理)” “$http_x_forwarded_for(被轉(zhuǎn)發(fā)的請(qǐng)求的原始IP)”‘;

注:(1)http_x_forwarded_for:在經(jīng)過代理時(shí),代理把你的本來IP加在此頭信息中,傳輸你的原始IP

(2)日志的格式我們也可以自己定義

我們具體看一下日志記錄的信息

Ngnix允許針對(duì)不同的server做不同的log,接下來我們自己做一個(gè)

保存并退出,然后重新加載一次配置文件

因?yàn)槲覀儧]開啟日志格式,進(jìn)入配置文件開啟即可

接下來重載配置文件成功,然后訪問下服務(wù)器,再查看log目錄下是否有kelly.log日志文件,然后在more kelly.log看是否有日志記錄

二、用定時(shí)任務(wù)完成日志切割備份

思路:用shell寫一個(gè)腳本,每到00:00:01時(shí)就把昨天的日志按日期時(shí)間格式重命名,放在相應(yīng)的目錄下,再用USR1信息號(hào)控制ngnix重新生成新的日志文件。

接下來我們?cè)?usr/local/ngnix/data目錄下做實(shí)驗(yàn),創(chuàng)建一個(gè)shell腳本,文件名為runlog.sh

我以下圖對(duì)此腳本做詳細(xì)解釋

我附上該shell腳本源碼,方便讀者做測(cè)試:

#!/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`

接下來做個(gè)定時(shí)任務(wù),按指定時(shí)間自動(dòng)執(zhí)行此腳本(這里我是做測(cè)試,所以我每分鐘執(zhí)行一下這個(gè)腳本,方便看效果)

然后查看最終效果

  哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無需額外費(fèi)用,即可穩(wěn)步提升排名至首頁。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)。