描述:resin伺服器在被通路時,所有的日志都記錄在access.log檔案中,随着通路次數的增多,日志量越來越多,導緻access.log檔案的大小不斷增大。
在resin官方手冊中有關于access的配置,可以配置定周期備份。配置方法如下:
(1)找到resin的安裝目錄并進入,以/user/resin-pro-4.0.63目錄為例,
執行:cd /user/resin-pro-4.0.63
(2)進入resin配置檔案的目錄,
執行:cd conf
(3)查找access-log所在的檔案
執行:grep -a ‘access-log’ *
執行結果如下:
那這邊access-log所在的檔案就是cluster-default.xml。
(4)修改配置檔案cluster-default.xml
執行:vi cluster-default.xml
找到 access-log 行,
修改配置如下:
<access-log path="log/access.log"
format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
rollover-size="10mb"
rollover-count="20"
auto-flush="true"
/>
配置說明:
a.其中path表示日志生成的路徑;format表示日志輸出的格式,采用類似C語言中的printf函數的列印格式格式化日志資訊;
b.rollover-period表示復原的周期,1D表示以一天為機關復原,所謂的復原是将目前所有寫日志操作都先鎖住,然後将檔案的内容複制到檔案名帶時間戳的檔案裡,完成之後access.log檔案繼續使用。同理,如果配置的是1W就表示以一周為機關;
c.rollover-count表示備份的檔案數,這裡配置是2,表示最多隻備份兩個備份檔案,超過的就将更早的那個備份檔案删除。但是在高并發的情況下,例如使用者的通路量集中在某個時間段,且數量非常之大,或者是在做壓力測試,這個時候access.log可能等不到一天的周期復原就爆滿了,緻使導緻線程無空間運作,甚至resin都無法啟動。在某些文章上看到部分人是将access.log的輸出關閉(resin.conf中不寫<access-log …/>這段配置就可以關閉了),這是一個解決方法。
第二配置方案:
<access-log path="log/access.log"
format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
rollover-period="1D"
rollover-size="10mb"
rollover-count="20"
auto-flush="true"
/>
此外周期復原和限制大小復原可以一起使用,經過測試确實能生效。