nginx日志自动分割的完美实现
2014-01-25 15:23
591 查看
大家都知道,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的那个用户,不然创建出来的文件夹当前用户没有写权限,会导致日志生成失败。
好累啊,今天就先到这里,如何修改的以后再更新吧
网上目前出来的方式都是在 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的那个用户,不然创建出来的文件夹当前用户没有写权限,会导致日志生成失败。
好累啊,今天就先到这里,如何修改的以后再更新吧
相关文章推荐
- Linux:nginx或者Apache 每天自动分割日志文件
- CentOS 7.0下nginx实现每天定时分割日志
- Linux下自动分割Nginx日志文件(三)-----Logrotate
- Nginx 自动定期删除日志实现方法
- 自动分割nginx服务的日志文件
- MongoDB运行日志实现自动分割的方法实例
- nginx日志自动分割
- Nginx 日志自动分割
- nginx实现按日期进行日志分割
- Nginx 日志自动分割脚本
- Nginx 日志自动分割脚本
- Linux下自动分割Nginx日志文件(二)-----Cronolog
- centos中nginx按日期自动分割访问日志的方法
- Linux下自动分割Nginx日志文件(一)-----自定义脚本和定时任务
- Linux下nginx生成日志自动切割的实现方法
- nginx日志分割实现
- centos中nginx按日期自动分割访问日志
- 实现自动定期删除Nginx日志的方法
- 使用shell脚本实现nginx日志分割
- Nginx日志分割并自动删除日志