nginx 預設不採用日誌切片進行日誌儲存,這樣就有乙個弊端:日誌檔案都放在同乙個檔案中,長時間執行後日誌檔案很大,可能達到幾個g,甚至十幾個g大小,檢視起來很不方便。為了解決這個問題就需要進行日誌切片,如每小時或者每天的日誌放在乙個單獨的檔案中。怎麼實現呢?windows 系統可通過簡單的配置實現按日期儲存,linux 的總體思路是:設定乙個定時任務,每隔一段時間將日誌檔案備份後,告訴nginx 重新開啟日誌檔案。
server )-(\d)-(\d)")
access_log logs/$year-$month-$day-access.log;
......
}
1、新建shell指令碼:
vi /opt/nginx/nginx_log.sh
#!/bin/bash
## 零點執行該指令碼
## nginx.pid所在目錄
declare pid_path="/usr/local/nginx/logs/nginx.pid"
## nginx 日誌檔案所在的目錄
declare logs_path="/usr/local/nginx/logs"
## 獲取昨天的 yyyy-mm-dd
declare yesterday=$(date -d last-day +%y%m%d)
## 刪除7天之前的日誌
rm -rf $/access_$(date -d "7 days ago" "+%y%m%d").log
## 執行mv操作
mv $/access.log $/access_$.log
## 向 nginx 主程序傳送 usr1 訊號。usr1 訊號是重新開啟日誌檔案
kill -usr1 `cat $`
2、授權執行 chmod 777 nginx_log.sh
3、./ nginx_log.sh 執行指令碼若提示如下
原因可能是 檔案的格式是dos,修改為unix,具體操作步驟如下
4、建立定時任務執行,執行命令crontab -e新增如下作業(每天凌晨執行)
0 0 * * * ./opt/nginx/nginx_log.sh
nginx日誌切片
上面給了乙個任務,說是每日nginx訪問日誌量都有幾個g,又不願意關閉訪問日誌。要實現nginx訪問日誌每日切片,並刪除7日前的日誌。先寫乙個切片的cron.sh檔案 bin bash description rotate nginx access logs nginx程序的pid ngx pid ...
window下nginx服務操作
windows下nginx的啟動 停止等命令 在windows下使用nginx,我們需要掌握一些基本的操作命令,比如 啟動 停止nginx服務,重新載入nginx等,下面我就進行一些簡單的介紹。1 啟動 c server nginx 1.0.2 start nginx 或c server nginx...
window配置nginx的相關
windows關閉nginx服務需要在任務管理器關閉 windows修改conf檔案後需要在任務管理器中關閉nginx相關程序,然後再啟動 檢視nginx的版本號 nginx v 啟動nginx start nginx 快速停止或關閉nginx nginx s stop 正常停止或關閉nginx n...