本文是介紹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

 

arrow
arrow

    痞客興 發表在 痞客邦 留言(0) 人氣()