一:作用

  Ngx_http_log_module:定义日志格式,并且以指定的格式保存。

二:示例配置

log_format compression '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio"'; access_log /spool/logs/nginx-access.log compression buffer=32k;

三:access_log

  句法: access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];

       access_log off;
  默认: access_log logs / access.log合并;
  语境: http,server,location,if in location,limit_except

  1:[buffer=size]

  设置缓冲日志写入的路径,格式和配置。

  2:gzip[=level]

  如果使用该gzip参数,则在写入文件之前,缓冲的数据将被压缩。压缩级别可以设置在1(最快,较少压缩)和9(最慢,最佳压缩)之间。默认情况下,缓冲区大小等于64K字节,压缩级别设置为1.由于数据是以原子块压缩的,因此日志文件可以随时解压或由“ zcat” 读取。

  3:[flush=time] 

  保存在缓存区中的最长时间。

四:log_format

  指定日志格式

log_format compression '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio"';

  1:remote_addr, $http_x_forwarded_for 记录客户端IP地址

  2:remote_user 记录客户端用户名称
  3:request 记录请求的URL和HTTP协议
  4:status 记录请求状态
  5:body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。
  6:bytes_sent 发送给客户端的总字节数。
  7:connection 连接的序列号。
  8:connection_requests 当前通过一个连接获得的请求数量。
  9:msec 日志写入时间。单位为秒,精度是毫秒。
  10:pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。
  11:http_referer 记录从哪个页面链接访问过来的
  12:http_user_agent 记录客户端浏览器相关信息
  13:request_length 请求的长度(包括请求行,请求头和请求正文)。
  14:request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。
  15:time_iso8601 ISO8601标准格式下的本地时间。
  16:time_local 通用日志格式下的本地时间。

五:open_log_file_cache

  句法: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
     open_log_file_cache off;
  默认:
     open_log_file_cache off;
  语境: http,server,location

  作用:定义一个缓存,用于存储名称中包含变量的常用日志的文件描述符。该指令具有以下参数:

  max:设置缓存中描述符的最大数量; 如果缓存变满,则最近最少使用(LRU)描述符关闭
  inactive:设置在此时间之后如果没有访问时缓存的描述符被关闭的时间; 默认情况下为10秒
  min_uses:inactive参数定义的时间内设置文件使用的最小数量,以使描述符在缓存中保持打开状态; 默认情况下,1
  valid:设置应检查文件是否仍然存在同名的时间; 默认情况下为60秒
  off:禁用缓存

  用法示例:

open_log_file_cache max = 1000 inactive = 20s valid = 1m min_uses = 2

六:日志切割

1. 定义日志轮滚策略

# vim nginx-log-rotate

/data/weblogs/*.log {
nocompress
daily
copytruncate
create
notifempty
rotate 7
olddir /data/weblogs/old_log
missingok
dateext
postrotate
/bin/kill -HUP `cat /var/run/nginx.pid 2> /dev/null` 2> /dev/null || true
endscript
}

[warning]/data/weblogs/*.log使用通配符时,/data/weblogs/目录下的所有匹配到的日志文件都将切割。如果要切割特定日志文件,就指定到该文件。[/warning]

2. 设置计划任务

59 23 * * * root ( /usr/sbin/logrotate -f /PATH/TO/nginx-log-rotate)

这样每天23点59分钟执行日志切割。

nginx日志模块及日志定时切割的更多相关文章

  1. 使用pycharm手动搭建python语言django开发环境(五) 使用日志模块打日志

    1.在项目的settings.py中增加日志相关声明 #增加日志设置 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'fil ...

  2. mybaits源码分析--日志模块(四)

    一.日志模块 首先日志在我们开发过程中占据了一个非常重要的地位,是开发和运维管理之间的桥梁,在Java中的日志框架也非常多,Log4j,Log4j2,Apache Commons Log,java.u ...

  3. Linux下添加shell脚本使得nginx日志每天定时切割压缩

    Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...

  4. nginx日志文件的定时切割与归纳

    应用环境:生产环境中的Nginx服务器,由于访问日志文件增长速度非常快,日志太大会严重影响服务器效率.同时,为了 方便对日志进行分析计算,须要对日志文件进行定时切割.定时切割的方式有按月切割.按天切割 ...

  5. 编写每天定时切割Nginx日志的脚本

    自动每天定时切割Nginx日志的脚本,很方便很好用,推荐给大家使用.本脚本也是参考了张宴老师的文章,再次感谢张宴老师.1.创建脚本/usr/local/nginx/sbin/cut_nginx_log ...

  6. Centos下Nginx配置WEB访问日志并结合shell脚本定时切割

    在一个成熟的WEB系统里,没有日志管理是不可以的,有了日志,可以帮助你得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息:通过错误日志,你可以得到系统某个服务或server的性能瓶颈等. ...

  7. Nginx基础知识学习(安装/进程模型/事件处理机制/详细配置/定时切割日志)

    一.Linux下Nginx的安装 1.去官网 http://nginx.org/download/下载对应的Nginx安装包,推荐使用稳定版本. 2.上传Nginx到Linux服务器. 3.安装依赖环 ...

  8. Nginx日志定时切割脚本

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

  9. nginx使用-2(模块和日志)

    默认官方模块 1.1.Gzip压缩 压缩文件,使文件变小,传输更快了.目前市场上大部分浏览器是支持GZIP的.IE6以下支持不好,会出现乱码情况. 官方文档:http://nginx.org/en/d ...

随机推荐

  1. WSL Windows Subsystem for Linux安装指南

    见官方文档: https://msdn.microsoft.com/en-us/commandline/wsl/install_guide

  2. require './ex25' can't load such file

    require './ex25' can't load such file 在练习learn ruby the hard way时候,第25题,发生了一下错误 LoadError: cannot lo ...

  3. Angular5 宏观把控

    1.首先,Angular5相对于Angular4有了一些新的特性: (1)i18n国际化管道: (2)一个组件可以以多个名称导出: (3)使用httpClient: 相比于http,httpClien ...

  4. L1正则化比L2正则化更易获得稀疏解的原因

    我们知道L1正则化和L2正则化都可以用于降低过拟合的风险,但是L1正则化还会带来一个额外的好处:它比L2正则化更容易获得稀疏解,也就是说它求得的w权重向量具有更少的非零分量. 为了理解这一点我们看一个 ...

  5. Jenkins踩坑系列--你试过linux主机ssh登录windows,启动java进程吗,来试试吧

    一.问题概述 在一个多月前,组长让我研究下持续集成.我很自然地选择了jenkins.当时,(包括现在也是),部分服务器用的是windows主机. 我当时想了想,如果我把jenkins装在windows ...

  6. Install and Configure Apache Kafka on Ubuntu 16.04

    https://devops.profitbricks.com/tutorials/install-and-configure-apache-kafka-on-ubuntu-1604-1/ by hi ...

  7. QT中正则表达式的简单说明

    使用方法: QRegExp acNumRE("[0-9]{19}"); lineEdit->setValidator(new QRegExpValidator(acNumRE ...

  8. 获取linux帮助命令

    命令的分类 linux的命令分为内部命令和外部命令.  内部命令指的是shell程序自带的命令,是shell程序的一部分,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系 ...

  9. JavaScript常用的事件模型

    一.事件绑定模型 DOM0事件模型 1.内联模型(行内绑定):将函数名直接作为HTML标签中事件属性的属性值 <button id="btn" onclick="f ...

  10. Map的四种遍历

    //Map的四种遍历方法 public static void main(String[] args) { Map<String, String> map = new HashMap< ...