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的那个用户,不然创建出来的文件夹当前用户没有写权限,会导致日志生成失败。
Nginx日志自动按日期存储的更多相关文章
- Nginx 日志自动分割
Nginx 的日志都是写在一个文件当中的,不会自动地进行切割,如果访问量很大的话,将导致日志文件容量非常大,不便于管理和造成Nginx 日志写入效率低下等问题.所以,往往需要要对access_log. ...
- nginx日志自动切割
1.日志配置 Nginx 日志分 access.log 记录哪些用户,哪些页面以及用户浏览器,IP等访问信息: error.log 记录服务器错误的日志 配置日志存储路径 location / { a ...
- linux下的nginx日志自动备份压缩--日志切割机
部署完毕nginx之后,发现自己的/var/log/nginx/*log的日志不会压缩,一直都是一个文本写日志, 时间久了,日志文件内存过于增加,将会导致在日志添加过程效率降低,延长时间. 默认安装的 ...
- 一个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 ...
- shell按日期自动切割nginx日志脚本
shell按日期自动切割nginx日志脚本 参考:自学it网 http://www.zixue.it/. #nginx日志切割脚本 #author:ce #!/bin/bash #设置日志文件存放目录 ...
- nginx日志按日期自动切割脚本
#!/bin/bash #nginx日志切割脚本 #author:setevn #设置日志文件存放目录 logs_path="/usr/local/nginx/logs/" #设置 ...
- Nginx日志文件配置与切割
Nginx日志的指令主要有两条: log_format,设置日志的格式 access_log,指定日志文件的存放路径.格式和缓存大小 两条指令在Nginx配置文件中的位置可以在http{……..}之间 ...
- Nginx日志定时切割脚本
nginx的日志文件如果你不处理,将变得越来越大,我们可以写一个nginx日志切割脚本来自动切割日志文件. 第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志.在你未重新打开 ...
- nginx日志管理与限速
1.日志简介nginx日志主要有两种:访问日志和错误日志.访问日志主要记录客户端访问nginx的每一个请求,格式可以自定义:错误日志主要记录客户端访问nginx出错时的日志,格式不支持自定义.两种日志 ...
随机推荐
- 在golang中使用leveldb
leveldb是一个很强悍的kv数据库,自然,我也希望能在go中使用. 如果有官方的go leveldb实现,那我会优先考虑,譬如这个,但是该库文档完全没有,并且在网上没发现有人用于实战环境,对其能否 ...
- Java JDBC封装模式
模仿DBUtils里面的一些用法,下面是一些简单的实现数据集的操作的方法 下面使用到的两个bean.首先是userbean package bean; public class user { Stri ...
- tomcat的realm域
Realm域,其实可以看成是一个包含了用户及密码的数据库,而且每个用户还会包含了若干角色.也就是包含了用户名.密码.角色三个列的数据记录集合,如下图,最下面椭圆内的包含的整块即可以看成realm域.它 ...
- unity 实现流光效果
1.通过一些简单效果可以让我们更好的去理解shader,具体都在代码注释中: Shader "Unlit/MoveLightImage" { Properties { //主纹理 ...
- python调用数据库并查询
http://blog.csdn.net/pipisorry/article/details/48024795 python调用数据库命令 conn = sqlite3.connect(". ...
- LCS问题(最长公共子序列)-动态规划实现
问题描述: 问题] 求两字符序列的最长公共字符子序列 注意: 并不要求子串(字符串一)的字符必须连续出现在字符串二中. 思路分析: 最优子结构和重叠子问题的性质都具有,所以要采取动态规划的算法 最长公 ...
- 高通android开发摘要
一部分是开源的,可以从codeaurora.org上下载,还有一部分是高通产权的,需要从高通的网站上下载. 将高通产权的代码放到:vendor/qcom/proprietary 1. 设置bms一些参 ...
- C语言中数组转化为字符串的方法
#include<stdio.h> #include <stdlib.h> #include <string.h> #define NR(x) (sizeof(x) ...
- cocos2d-x 游戏开发之有限状态机(FSM) (二)
cocos2d-x 游戏开发之有限状态机(FSM) (二) 1 状态模式
- androd输入管理系统机制解析
android的输入管理系统主要完成按键.触摸板.鼠标等输入设备的事件输入,功能包括,输入设备的事件输入及向焦点窗口和焦点视图的事件派发,事件的插入,事件的过滤,事件的拦截等功能. 整个输入系统 ...