2014-03-24 08:12:01
来 源
kejihao
Nginx
本文介绍Nginx服务器日志设置方法,希望对于初学Nginx服务器相关的朋友有帮助,更多Nginx安装、配置、报错处理等资源请本站内搜索。。
日志开启的方法是修改对于网站的conf文件,如/usr/local/nginx/conf/vhost/域名.conf,哦了,看下面的详细设置教程吧。

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日志文件的切割:

[[email protected] 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

[[email protected] logs]# mv 192.168.0.28.access.log /tmp/nginx.28.log

  [[email protected] logs]# kill -USR1 `cat /usr/local/nginx/logs/nginx.pid `

[[email protected] 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 ]   #开启以本地时间来显示文件时间的功能,默认为关

}

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。