2012-02-28 65 views
2

我使用命名管道作爲我的nginx的access_log的日誌文件,我想知道當我刪除並重新創建管道時,在nginx中發生了什麼。我注意到,nginx繼續工作,但停止記錄。當我使用命名管道作爲日誌文件並刪除並重新創建管道時,nginx會發生什麼?

即使我不再創建管道nginx並沒有嘗試創建一個常規的日誌記錄文件。

我不想失去我的日誌,但顯然唯一的選擇是重新啓動nginx,我可以強制nginx再次檢查日誌文件嗎?

錯誤日誌只是說這個,即使管道不存在或者管道被重建:

2012/02/27 22:45:13 [alert] 24537#0: *1097 write() to "/tmp/access.log.fifo" failed (32: Broken pipe) while logging request, client: 127.0.0.1, server: , request: "GET/HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "localhost:8002" 

感謝。

回答

3

AFIAK,您需要發送一個USR1信號來指示它重新打開日誌文件。基本上,nginx將不斷嘗試寫入舊文件的文件描述符(這就是爲什麼你會看到Broken Pipe錯誤)。更多的信息在這裏:

http://wiki.nginx.org/LogRotation(也點擊該頁面底部的其他鏈接)。

hth

相關問題