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. RockWare RockWorks的Ollydbg调试过程及注册机(破解)思路

    最近拿到了RockWorks15的安装包,可惜没有破解,试用也只能用14天.用PEiD工具察看了一下,Delphi编写的程序,竟然没加壳.本想用OllyDBG调试进去爆破一下,不意发现注册码很简单,如 ...

  2. Linq---左外联查询

    花了好半天才解决这个问题,终于在网上找到了答案,在此记录备份. 参考连接:http://bbs.csdn.net/topics/390150047 自己总结的如下: 结构就不说了,最后大家自己下源码看 ...

  3. C# 使用XML序列化对象(二)

    在C# 使用XML序列化对象(一)中描述了使用XML序列化对象的最简单的实现. 现在我们来看看稍微复杂一点的情况: 现有两个类:A和B,B是A的派生类,如下所示: public class A { p ...

  4. Html巩固

    1.html元素都支持全局属性(通用的属性)和事件属性.     a标签:定义一个超文本链接,链接到另一个超文本文件的! button:定义一个点击按钮,按钮是出发当前页面的事件.

  5. tomcat发布项目时,localhost可以访问,用ip地址不能访问,同时其他电脑也不能访问。

    最近在开发项目中,遇到的一个问题是:在 tomcat中发布一个web项目,但是发布成功后,只能用http://localhost:8080/aml访问项目,不能用http://172.0.0.1:80 ...

  6. Java基础-设计模式之-代理模式Proxy

    代理模式是对象的结构模式.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. 代理模式是常用的Java 设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理 ...

  7. 【CodeForces 312B】BUPT 2015 newbie practice #3A Archer

    题 SmallR is an archer. SmallR is taking a match of archer with Zanoes. They try to shoot in the targ ...

  8. Oracle查看锁表

     查看锁表进程SQL语句1: select sess.sid,     sess.serial#,     lo.oracle_username,     lo.os_user_name,     a ...

  9. HDU-1754I Hate It 线段树区间最值

    这道题比较基本,就是用线段树维护区间最值,可以算是模板吧-.. I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768 ...

  10. TYVJ1305 最大子序和

    描述 输入一个长度为n的整数序列,从中找出一段不超过M的连续子序列,使得整个序列的和最大. 例如 1,-3,5,1,-2,3 当m=4时,S=5+1-2+3=7当m=2或m=3时,S=5+1=6 输入 ...