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的那个用户,不然创建出来的文件夹当前用户没有写权限,会导致日志生成失败。

Nginx日志自动按日期存储的更多相关文章

  1. Nginx 日志自动分割

    Nginx 的日志都是写在一个文件当中的,不会自动地进行切割,如果访问量很大的话,将导致日志文件容量非常大,不便于管理和造成Nginx 日志写入效率低下等问题.所以,往往需要要对access_log. ...

  2. nginx日志自动切割

    1.日志配置 Nginx 日志分 access.log 记录哪些用户,哪些页面以及用户浏览器,IP等访问信息: error.log 记录服务器错误的日志 配置日志存储路径 location / { a ...

  3. linux下的nginx日志自动备份压缩--日志切割机

    部署完毕nginx之后,发现自己的/var/log/nginx/*log的日志不会压缩,一直都是一个文本写日志, 时间久了,日志文件内存过于增加,将会导致在日志添加过程效率降低,延长时间. 默认安装的 ...

  4. 一个windows计划任务的Nginx日志自动截断的批处理命令

    net stop nginx taskkill /im nginx.exe /f cd E:\nginx e: set NO=%Date:~0,4%%Date:~5,2%%Date:~8,2% set ...

  5. shell按日期自动切割nginx日志脚本

    shell按日期自动切割nginx日志脚本 参考:自学it网 http://www.zixue.it/. #nginx日志切割脚本 #author:ce #!/bin/bash #设置日志文件存放目录 ...

  6. nginx日志按日期自动切割脚本

    #!/bin/bash #nginx日志切割脚本 #author:setevn #设置日志文件存放目录 logs_path="/usr/local/nginx/logs/" #设置 ...

  7. Nginx日志文件配置与切割

    Nginx日志的指令主要有两条: log_format,设置日志的格式 access_log,指定日志文件的存放路径.格式和缓存大小 两条指令在Nginx配置文件中的位置可以在http{……..}之间 ...

  8. Nginx日志定时切割脚本

    nginx的日志文件如果你不处理,将变得越来越大,我们可以写一个nginx日志切割脚本来自动切割日志文件. 第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志.在你未重新打开 ...

  9. nginx日志管理与限速

    1.日志简介nginx日志主要有两种:访问日志和错误日志.访问日志主要记录客户端访问nginx的每一个请求,格式可以自定义:错误日志主要记录客户端访问nginx出错时的日志,格式不支持自定义.两种日志 ...

随机推荐

  1. 解决log4cxx退出时的异常

    解决log4cxx退出时的异常(金庆的专栏)如果使用log4cxx的FileWatchdog线程来监视日志配置文件进行动态配置,就可能碰到程序退出时产生的异常.程序退出时清理工作耗时很长时,该异常很容 ...

  2. How to create DB2 user function easily by DB Query Analyzer 6.03

    How to create DB2user function easily by DB Query Analyzer 6.03 Ma Genfeng (Guangdong Unitoll Servic ...

  3. 高德地图SDK使用经验

    下文说的是高德地图 Android SDK版本,详细版本如下: 2D地图:v2.3.1 定位:v1.3.0 导航:v1.1.1 发现的问题如下,其中一些疑是地图BUG,一些是需要你自己小心的地方: 1 ...

  4. Gradient Descent 梯度下降法-R实现

    梯度下降法: [转载时请注明来源]:http://www.cnblogs.com/runner-ljt/ Ljt 作为一个初学者,水平有限,欢迎交流指正. 应用:求线性回归方程的系数 目标:最小化损失 ...

  5. how tomcat works 五 servlet容器 上

    servlet容器是用来处理请求servlet资源,并为Web客户端填充response对象的模块.在上一篇文章(也就是书的第四章)我们设计了SimpleContainer类,让他实现Containe ...

  6. 用curl采集需要登录的页面

    登陆cookie存储至自定义目录 $cookie_dir = tempnam('.', 'cookie');curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_ ...

  7. tomcat会话之持久化会话管理器

    前面提到的标准会话管理器已经提供了基础的会话管理功能,但在持久化方面做得还是不够,或者说在某些情景下无法满足要求,例如把会话以文件或数据库形式存储到存储介质中,这些都是标准会话管理器无法做到的,于是另 ...

  8. 【Python】模拟radius coa报文

    Radius协议中网关设备NAS是client,实现radius协议的服务为服务端(例如freeradius),这种情况下radius server并不能主动给NAS发送信息.在 rfc3576 Dy ...

  9. OpenCV——素描

    具体的算法原理可以参考: PS滤镜,素描算法 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_ ...

  10. Order Management Suite - Pricing and Availability Form Library

    In this Document   Purpose   Scope   Details   A. Form / Functional Issues   "Add to Selection& ...