1.日志格式 css
同httpd同样,nginx日志的格式也在主配置文件中设置,若是要更改日志格式,须要编辑主配置文件html
# /usr/local/nginx/conf/nginx.confnginx
找到下图中log_formartshell
其中combined_realip是日志格式的名字,能够随便定义,这里的名字是什么,后面引用就用什么名字apache
二、参数解析vim
$remote_addrbash
$http_x_forwarded_for工具
$time_local
$host测试
$request_uri uri就是访问网站的网址域名后面的部分网站
$status
$http_referer
$http_user_agent
三、编辑虚拟主机配置文件
# vim /usr/local/nginx/conf/vhost/test.com.conf
在此文件中加入如下内容:
access_log /tmp/1.log combined_realip;
其中,access_log表示定义的是访问日志的路径,/tmp/1.log表示访问日志存放路径,combined_realip是以前在主配置文件中定义的日志格式的名字,若是不定义日志的格式就会使用系统默认的日志格式,系统默认的日志格式会比较简单。
四、检测语法错误并从新加载
# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx -s reload
五、测试并查看访问日志
访问test3.com/wrwer/err
访问test2.com/wrwer/err
如今来查看访问日志
Nginx不像apache同样带有日志切割工具,因此Nginx切割日志须要使用到系统的日志切割工具或者本身写切割的脚本,下面咱们使用本身写的脚原本切割日志
一、建立脚本
咱们将全部的脚本放在/usr/local/sbin/目录下
# vim /usr/local/sbin/nginx_logrotate.sh
在脚本中写入如下内容:
#! /bin/bash
d=`date -d "-1 day" +%Y%m%d` //date -d "-1 day" +%Y%m%d是一个日期,而且是当前时间的头一天
logdir="/tmp/" // 假设nginx的日志存放路径为/tmp/
nginx_pid="/usr/local/nginx/logs/nginx.pid" //此处找到的pid是为了执行代码的最后一行
cd $logdir //进入到日志目录下
for log in `ls *.log` //循环查找以*.log为文件名的日志文件
do //执行下面的操做
mv $log $log-$d //将找到的文件名字后面加上日期
done
/bin/kill -HUP `cat $nginx_pid` //这行代码的目的和nginx -s reload是同样的,由于日志被切割后,存放日志的文件发生了变化,须要从新加载一下配置文件
二、执行脚本
# sh -x /usr/local/sbin/nginx_logrotate.sh
使用sh命令就能够执行脚本,其中-x表示查看脚本执行过程
三、删除日志
# find /tmp/ -name *.log-* -type f -mtime +30 |xargs rm
查找到30天之前的文件名为*.log-*的文件执行删除操做
四、任务计划
写完shell脚本之后咱们还须要作任务计划
# crontab -e
执行上面命令后会弹出如下界面
咱们在这个文件中写任务计划并保存就能够了。
任务计划代码以下:
0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh
表示在天天凌晨0点执行日志切割
一、编辑虚拟主机配置文件
# vim /usr/local/nginx/conf/vhost/test.com.conf
在配置文件中加入如下内容:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 7d; //过时时间为7天
access_log off;
}
location ~ .*\.(js|css)$
{
expires 12h; //过时时间为12小时
access_log off;
}
二、检测语法错误并从新加载配置文件
# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx -s reload
三、访问测试验证
访问图片
访问js文件
访问html页面
再来查看访问日志,能够看到只记录了访问html页面的日志
加上-I选项来访问js文件,能够看到有一个max-age,这就是过时时间