Nginx的日誌配置以下:nginx
#定義日誌打印的格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # 聲明log log文件路徑 log格式 access_log logs/access.log main;
上面是http做用域下的日誌配置,除此以外,nginx還有server和location做用域能夠配置日誌,日誌級別 location > server > http 。web
nginx的日誌若是不作切分的話會在一個文件中一直追加,致使日誌文件愈來愈大,因此經過編寫腳原本實現控制日切的功能,同時清理存在超過30天的文件。bash
腳本以下:ui
#!/bin/bash #LOGS_PATH爲日誌存放路徑 LOGS_PATH=/weblog/nginx/logs YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) KEEPTIME=$(date -d "-30 days" +%Y-%m-%d) #切分日誌文件 mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log #經過Nginx信號量控制重讀日誌,/web/nginx/爲nginx安裝目錄 kill -USR1 $(cat /web/nginx/logs/nginx.pid) #刪除30天前的日誌文件 rm -f ${LOGS_PATH}/access_{KEEPTIME}.log rm -f ${LOGS_PATH}/error_{KEEPTIME}.log echo 0
添加系統定時任務spa
crontab -e #天天0時1分進行日誌分割 01 00 * * * /web/nginx/logs/cut_nginx_log.sh #重啓Linux定時任務 crond restart