一、Nginx访问日志
vim /usr/local/nginx/conf/nginx.conf //搜索log_format
日至格式
改为davery格式
$remote_addr 客户端IP(公网IP)
$http_x_forwarded_for 代理服务器的IP
$time_local 服务器本地时间
$host 访问主机名(域名)
$request_uri 访问的url地址
$status 访问的url地址
$http_referer 状态码
$http_referer referer
$http_user_agent user_agent
除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加
vim /usr/local/nginx/conf/vhost/aaa.com.conf
access_log /tmp/test.com.log davery;
这里的davery就是在nginx.conf中定义的日志格式名字
测试重加载
重访问
查看log记录
cat /tmp/aaa.com.conf.log
二、Nginx日志切割
自定义shell 脚本
vim /usr/local/sbin/nginx_logrotate.sh//写入如下内容,日志的路径都在/usr/local/sbin/下边
#! /bin/bash
## 假设nginx的日志存放路径为/data/logs/
d=`date -d "-1 day" +%Y%m%d`
logdir="/data/logs"
nginx_pid="/usr/local/nginx/logs/nginx.pid"
cd $logdir
for log in `ls *.log`
do
mv $log $log-$d
done /bin/kill -HUP `cat $nginx_pid` 任务计划
pid路径
[root@davery vhost]# for f in `ls `; do ls -l $f; done
会做两个循环 aaa.com.conf 和aaa.conf
查看脚本执行顺序
sh -x /usr/local/sbin/nginx_logrotate.sh
ls /tmp/ 接可以看到新的log
清除不需要的过期日志
查找log
删除log
查看脚本内容
cat /usr/local/sbin/nginx_logrotate.sh
任务计划,每天0:0执行一次脚本
crontab -e
三、静态文件不记录日志和过期时间
cd /usr/local/nginx/conf/vhost/
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ .*通配 .脱义
{
expires 7d;
access_log off;
}
location ~ .*.(js|css)$
{ expires 12h;
access_log off;
}
改为
重加载
测试进入虚拟主机文件test.com,创建图片