1.nginx日志简介
nginx的产生的相关的日志默认是在/usr/local/nginx/logs的目录里面。
日志文件的介绍
-
access.log:该日志文件是用来记录客户在访问该nginx时产生的每一个请求,格式可以自定义,通过访问日志就可以得到用户地域来源跳转来源,使用终端,某个URL访问等相关信息。
-
error.log:错误日志,主要是记录客户端访问Nginx错误时产生的日志,格式不支持自定义,通过错误日志。可以得到系统的某个服务或者server的性能瓶颈。因此将错误日志好好利用,可以得到很多有价值的信息。
-
nginx.pid:该日志文件主要是用来记录nginx的master进程的pid,当nginx服务启动时,会自动在该目录下生成该进程的pid文件。
注意:日志的开关在Nginx的配置文件nginx.conf文件中设置,产生的日志都是可以选择性关闭的,但是默认是打开的
日志格式
在配置文件中可以查看日志的默认格式
默认格式的具体意思:
log_format main ##日志格式
$remote_addr(远程IP)
$remote_user(远程用户)
[$time_local](访问时间)
$request"(请求方式) '
$status(状态302、404、401、403等)
$body_bytes_sent(请求体 body 长度等)
$http_referer"(referer来源信息)
$http_user_agent(用户代理)"
$http_x_forwarded_for(被转发的请求的原始IP)"
2.日志切割与日志备份
需求:nginx的access.log日志会保存所有客户端连接信息,普通网站每天请求量很大,所以要每天切割(可以用nginx自带的reopen)
查看nginx的access.log日志大小
du -sh access.log
压力测试:
ab -c 1 -n 100000 http://www.westos.org/i ##1个并发,100000次请求
再次查看日志大小,日志大小明显增大很多
du -sh access.log
实现:
(1)进行日志分割备份:
mv access.log `date +%F -d -1day`_access.log ##分割日志,保存先前的日志 ;一般日志的备份应该是在00:00时进行,所以保存的日志格式日期应该是-1day 前一天的
(2)生成新的access.log文件
/usr/local/nginx/sbin/nginx -s reopen ##发现重新生成了一个access.log,新的请求信息会到新日志里
当用户再次访问时,访问信息又会被记录在access.log文件中
(3)日志备份的定时任务
可以把命令写在crontab里,每天执行一次