本文是介紹Nginx的日誌記錄檔存放規則設定,如果你要找日誌記錄檔的格式設定,請參考http://charleslin74.pixnet.net/blog/post/460119008-Nginx%E8%A8%98%E9%8C%84%E6%AA%94%E6%A0%BC%E5%BC%8F%E8%A8%AD%E5%AE%9A%E5%AE%A2%E8%A3%BD%E5%8C%96
接下來進入主題,以上所講的設定,一樣是放在nginx.conf裡面
1. 設定的格式如下
access_log path [format [buffer=size | off]]
2. 如果不想記錄日誌,可以設定如下
access_log off;
3. 常見的日誌設定,因為沒有指定format,所以是使用預設的combined,並且日誌記錄是存放在/var/log/nginx/nginx.log.
access_log /var/log/nginx/nginx.log;
4. 日誌記錄指定格式為mylogformat,但記得要去設定一個名稱為mylogforate的記錄格式.
access_log /var/log/nginx/nginx.log mylogformat;
5. 設定中可以包含變數,其中的$server就是設定虛擬主機時用的server_name,比如虛擬主機是abc.com,但記錄檔名就是abc.com.log
access_log /var/log/nginx/$server.log mylogformat;
但使用變數需要搭配open_log_file_cache使用
open_log_file_cache max=1000 inactive=20s min_uses=2 valid=1m;
max 設定快取中的最大檔案述符號數量
inactive 設定檔案描述符號多久沒使用後刪除
min_uses 設定描述符號記入快取的門檻
valid 設定檢查變數的檔案路徑和檔案名是否仍存在的時間
6. 日誌記錄檔的分割,將nginx_master_process_id改為你的nginx主執行緒的id,然後寫個shell,放到crontab定時執行就好了
mv /var/log/nginx/nginx.log /var/log/nginx/nginx20170914.log kill -USR1 nginx_master_process_id
文章標籤
全站熱搜