nginx 日志相关指令主要有两条,一条是log_format,用来设置日志格式,另外一条是access_log,用来指定日志文件的存放路径、格式和缓存大小,通俗的理解就是先用log_format来定义自己想用的日志格式,然后在用zccess_log定义虚拟主机时或全局日志时 在把定义的log_format 跟在后面;

1、log_format 格式

log_format       name( 格式名字)  格式样式(即想要得到什么样的日志内容)

默认的示例:

log_format     main               '$remote_addr - $remote_user [$time_local] "$request" '
                                              '$status $body_bytes_s ent "$http_referer" '
                                              '"$http_user_agent" "$http_x_forwarded_for"'

注释:

$remote_addr   与$http_x_forwarded_for 用以记录客户端的ip地址;

$remote_user   :用来记录客户端用户名称;

$time_local  : 用来记录访问时间与时区;

$request  :  用来记录请求的url与http协议;

$status     :  用来记录请求状态;成功是200,

$body_bytes_s ent  :记录发送给客户端文件主体内容大小;

$http_referer  :用来记录从那个页面链接访问过来的;

$http_user_agent  :记录客户毒啊浏览器的相关信息;

通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址;

log_format     mylogformat     ' $http_x_forwarded_for- $remote_user [$time_local] '

' "$request"   '$status $body_bytes_s ent '

' "$http_referer" "$http_user_agent" ';

上面这个是涨宴老师的日志例子;

2、用access_log指令日志文件存放路径;

用了log_format 指令设置了日志格式之后,需要用access_log指令指定日志文件的存放路径;

access_log        path(存放路径)                   format (自定义日志名称)

示例:

#access_log             logs/access.log              main;

我们用log_format 定义了一个mylogformat的日志 我们可以写成这样

access_log             logs/access.log         mylogformat ;

如果不想启用日志 :

access_log off ;

在定义日志目录中要注意的是,nginx进程设置的用户和组必须有对该路径 创建文件的权限,假设nginx的usr指令设置的用户名 和用户组都是www,而logs 目录的用户名和组是root,那么日志文件将无法被创建;

3、nginx日志文件的切割:

[root@mgmserver logs]# ll
总计 48
-rw-r--r-- 1 root root  1891 09-02 14:59 192.168.0.28.access.log
-rw-r--r-- 1 root root   531 09-02 13:52 192.168.0.37.access.log
-rw-r--r-- 1 root root   531 09-02 13:52 192.168.0.38.access.log

[root@mgmserver logs]# mv 192.168.0.28.access.log /tmp/nginx.28.log

[root@mgmserver logs]# kill -USR1 `cat /usr/local/nginx/logs/nginx.pid `

[root@mgmserver logs]# ll
总计 36
-rw-r--r-- 1 nginx root     0 09-02 15:05 192.168.0.28.access.log
-rw-r--r-- 1 nginx root   531 09-02 13:52 192.168.0.37.access.log
-rw-r--r-- 1 nginx root   531 09-02 13:52 192.168.0.38.access.log

先把日志拷贝出来,然后想nginx发送信号 ,让nginx重新生成一个日志文件;

 4、nginx的压缩输出配置

nginx的压缩输出由一组压缩指令来实现,gzip的压缩输出位于http {......}两个大括号之间;

gzip on;
  gzip_min_length  1k;
  gzip_buffers     416k;
  gzip_http_version 1.1;
  gzip_comp_level 2;
  gzip_types       text/plain application/x-javascript text/css application/xml;
  gzip_vary on;

5、nginx自动列目录配置;

可以在 某一虚拟主机的location /{......}
目录中配置自动列目录,加上下面代码:

location  . {

autoindex on;

autoindex_exact_size  [on |off]     #设定索引时文件大小的单位

autoindex_localtime  [on |off ]   #开启以本地时间来显示文件时间的功能,默认为关

}

nginx(四)初识nginx日志文件的更多相关文章

  1. NGINX按天生成日志文件的简易配置

    NGINX按天生成日志文件的简易配置 0x01 最近后端童鞋遇到一个小需求,拆分nginx生成的log文件,最好是按天生成,看着她还有很多bug待改的状态,我说这个简单啊,我来吧.曾经搞node后端的 ...

  2. mysql 初识之日志文件篇

    日志文件 1. err日志     error log 记录mysql在运行的过程中所有较为严重的警告和错误信息,以及mysql server每次启动和关闭的详细信息.系统在默认情况下关闭error ...

  3. 【lucene系列学习四】log4j日志文件实现多线程的测试

    参考资料:http://nudtgk2000.iteye.com/blog/1716379 首先,在http://www.apache.org/dyn/closer.cgi/logging/log4j ...

  4. nginx(一)初识nginx

    什么是nginx?Nginx (engine x) 是一款轻量级的Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器. Nginx应用场景(都很常用): 1:http服务器.N ...

  5. 【Nginx(四)】Nginx配置集群 负载均衡策略

    1.Nginx常见的负载均衡策略 ip_hash (固定分发) 简介:根据请求按访问ip的hash结果分配,这样每个用户就可以固定访问一个后端服务器 场景:服务器业务分区.业务缓存.Session需要 ...

  6. 快速掌握Nginx(四) —— Nginx日志切片和常用配置总结

    1.Nginx日志管理 1.日志简单介绍 Nginx提供了日志记录的功能,日志文件在对我们管理网站十分有用,通过访问日志(access_log)我们可以获取请求来源.客户端信息.请求的资源等信息:通过 ...

  7. Nginx 基本配置和日志分析

    最近在维护的一个项目,路由转发规则都统一通过Nginx转发,所以再次参考部分博文和书本,熟悉Nginx的基本配置,还有一个重点也是日志的分析 Nginx 常用模块是server块,location块. ...

  8. Nginx教程(三) Nginx日志管理

    Nginx教程(三) Nginx日志管理 1 日志管理 1.1 Nginx日志描述 通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息:通过错误日志,你可以得到系统某 ...

  9. Nginx教程(三) Nginx日志管理 (转)

    Nginx教程(三) Nginx日志管理 1 日志管理 1.1 Nginx日志描述 通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息:通过错误日志,你可以得到系统某 ...

随机推荐

  1. KMP和扩展KMP

    文章网上太多这里提一下代码细节: KMP: scanf("%s\n",s); scanf("%s\n",t); int ls=strlen(s),lt=strl ...

  2. 编写高质量代码改善C#程序的157个建议[10-12]

    前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议10.创建对象时需要考虑是否实现比较器 建议11.区别对待 ...

  3. Lambda表达式和表达式树

    在C# 2.0中,通过方法组转换和匿名方法,使委托的实现得到了极大的简化.但是,匿名方法仍然有些臃肿,而且当代码中充满了匿名方法的时候,可读性可能就会受到影响.C# 3.0中出现的Lambda表达式在 ...

  4. redmine慢---提速方法

    最近readmine速度越来越慢.网上查了一下,把其自带的服务器webrick 换成为mongrel,可以解决这个问题,具体操作方法如下,方法: gem install mongrel 如果提示类似“ ...

  5. Informatica 错误:Cannot convert from SQL type 93 to C type 4

    经验和积累蛮重要!向大神学习! ---------------------------------------------------------------------- Mapping: 在sou ...

  6. easyui之datagrid的使用

    http://www.cnblogs.com/ruanmou001/p/3840954.html 一.神马是easyui jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery ...

  7. 使用PPA在Ubuntu上安装php5.4~5.6,7

    使用PPA在Ubuntu上安装php5.4~5.6,7 sudo apt-get install software-properties-common sudo add-apt-repository ...

  8. JavaScript的apply和call方法及其区别

    参考资料: http://blog.csdn.net/myhahaxiao/article/details/6952321 apply和call能“劫持”其他对象的方法来执行,其形参如下: apply ...

  9. Why Deep Learning Works – Key Insights and Saddle Points

    Why Deep Learning Works – Key Insights and Saddle Points A quality discussion on the theoretical mot ...

  10. Why The Golden Age Of Machine Learning is Just Beginning

    Why The Golden Age Of Machine Learning is Just Beginning Even though the buzz around neural networks ...