您的位置:首页 > 运维架构 > Nginx

nginx(四)初识nginx日志文件

2015-08-28 14:25 671 查看
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 ] #开启以本地时间来显示文件时间的功能,默认为关

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: