Nginx日志自動按日期存儲


Nginx ("engine x") 是一個高性能的 HTTP 和 反向代理 服務器,也是一個 IMAP/POP3/SMTP 代理服務器,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。但是他的日志系統實在是太欠了,所有的日志都會輸出到一個文件中,隨着時間的過去,那個文件變得越來越大,對我們分析日志非常不方便。

網上目前出來的方式都是在 linux下寫腳本來分割日志,但是這種方式很不方便,尤其是對linux環境不熟悉的同學,寫這個很費勁,而且系統重啟之類的,這個腳本要重新啟動,等等,總之很煩。

但是今天,我給大家帶來了完美的解決方案,那就是修改nginx源代碼,讓他支持日志分割。

可能有的朋友看到這會說這個更麻煩,確實修改源代碼不是一件容易的事。不願意看如何修改的朋友,這里直接給出修改后的鏈接,下載就能用了

nginx-1.4.1 下載地址: nginx-1.4.1-with-log-split

nginx-1.5.9 下載地址: nginx-1.5.9-with-log-split (推薦)

上面的1.4.1版只支持新建文件,1.5.9支持新建文件和文件夾(推薦下載)

日志配置方式請參考src文件夾中的nginx.conf來配置

1.4.1 配置文件中新增了 date_udf (格式:yyyy-MM-dd) 變量

1.5.9 配置文件中新增了 date_udf (格式:yyyy-MM-dd), year_udf (格式:yyyy), month_udf (格式:MM), day_udf (格式:dd)。

# access_log  logs/$year_udf/$month_udf/$day_udf/$date_udf-access.log  main; //別忘了把配置文件中的 main 放開

上面的方式配置 到時候日志會在 logs/yyyy/MM/dd/yyyy-MM-dd-access.log 文件中。

特別提示:請給你指定的logs文件夾指定nginx用戶的寫權限(所謂的nginx用戶是指 nginx 配置文件中指定的那個用戶)

特別提示:1.5.9版里面,要是配置日期文件夾,請在配置文件中將用戶指定為啟動nginx的那個用戶,不然創建出來的文件夾當前用戶沒有寫權限,會導致日志生成失敗。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM