若是使用默認日誌配置,通過一段時間運行後,access.log和error.log文件會變得很是大,使維護和排查問題變得不便,因此很是有必要作日誌切割。html
一般的思路是:使用nginx的-s reopen命令,結合linux系統的crontab定時任務命令,弄一個定時任務按時切割日誌文件。linux
天天定時執行腳本切割日誌文件。nginx
附:bash腳本shell
#!/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)
1,log_format指令用來定義日誌的格式,做用在上下文http中。bash
默認的main日誌格式以下:spa
2,定義日誌文件,經過access_log指令來完成。.net
默認的access_log是放在http上下文中,咱們也能夠爲每一個server塊定義access_log,以下圖。日誌