nginx(四)初识nginx日志文件
2010-09-02 14:20
471 查看
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 ] #开启以本地时间来显示文件时间的功能,默认为关
}
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日志文件
- nginx(四)初识nginx日志文件
- nginx(四)初识nginx日志文件
- LNMP架构 (3) 之 Nginx访问日志、日志切割、静态文件不记录日志和过期时间
- shell脚本控制nginx日志文件分割
- 改变nginx logrotate方式采用sh文件自动切割日志文件
- Nginx实现大日志文件切割
- nginx日志文件删除后空间不能释放,必须重启服务才能释放空间
- shell 按天自动割裂nginx日志,清理7天前日志文件
- 在线清理Apache、Tomcat、Nginx等Web服务产生的日志文件
- 转:Nginx 日志文件切割
- Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间
- 虚拟主机ip配置,nginx.conf文件配置及日志文件切割
- GoAccess分析多个nginx日志文件,了解访问的情况
- Nginx日志文件配置与切割
- Nginx日志文件切割
- Nginx日志文件切割
- Linux Awk使用案例总结(nginx日志统计,文件对比合并等)
- PHP实现简单的监控nginx日志文件功能
- nginx日志、nginx日志切割、静态文件不记录日志和过期时间