nginx系列4:日誌管理
阿新 • • 發佈:2019-01-12
日誌切割
如果使用預設日誌配置,經過一段時間執行後,access.log和error.log檔案會變得非常大,使維護和排查問題變得不便,所以非常有必要做日誌切割。
通常的思路是:使用nginx的-s reopen命令,結合linux系統的crontab定時任務命令,弄一個定時任務按時切割日誌檔案。
每天定時執行指令碼切割日誌檔案。
附:bash指令碼
#!/bin/bash #Rotate the nginx logs to prevent a single logfile from consuming too much disk space. LOGS_PATH=/usr/local/nginx/logs/history CUR_LOGS_PATH=/usr/local/nginx/logs YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) mv ${CUR_LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log mv ${CUR_LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log #向nginx master程序傳送USR1訊號,USR1訊號是重新開啟日誌檔案,相當於-s reopen命令 kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
access日誌的詳細用法
1,log_format指令用來定義日誌的格式,作用在上下文http中。
預設的main日誌格式如下:
2,定義日誌檔案,通過access_log指令來完成。
預設的access_log是放在http上下文中,我們也可以為每個server塊定義access_log,如下圖。
參考資料
- crontab:相當於Windows下的任務計劃,參考:https://www.cnblogs.com/wt645631686/p/6868672.html
- bash指令碼:是Linux下Shell的其中一種,類似於Windows下Shell的cmd,參考:https://blog.csdn.net/cy1070779077/article/details/85034083