Nginx寫日誌檔是什麼原理
天蓬老师
天蓬老师 2017-05-16 17:30:10
0
3
775

在做Nginx的日誌檔切割,發現一個詭異的問題。當我手動把Nginx的日誌檔案轉移位置以後,如果不reload設定文件,Nginx還是繼續寫這個被轉移到其他目錄的日誌檔案。
難道Nginx寫日誌的時候不是通過檔案路徑嗎?
為什麼日誌檔被轉移走了還是能寫到?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(3)
Ty80

這是檔案系統的特性,有點類似程式語言管理變數生命週期的里的引用計數。移動一個文件,甚至刪除一個文件,只要這個文件還被某個行程打開著,這個文件就還能被存取。但如果所有的「引用」都沒有了,例如文件名,硬連結(hard link)及文件句柄(不再被程式打開著),才影響對文件的下一次引用,就表現為「找不到文件了」。

Ty80

我覺得原因是,nginx打開的log檔案之後,在系統中實際上是以inode來標識的,移動檔案並不會修改inode的編號,所以還會繼續寫入該檔案。

滿天的星座

nginx為了更快的速度,一般都快取了檔案的inode的。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板