Nginx访问日志
- 日志格式
vim /usr/local/nginx/conf/nginx.conf //搜索log_format
下图中就是Nginx的日志格式:
combined_realip是日志格式名,我们可以自己自定义,这里我们改为xie_log
字段 | 含义 |
---|---|
$remote_addr | 客户端IP(公网IP) |
$http_x_forwarded_for | 代理服务器的IP |
$time_local | 服务器本地时间 |
$host | 访问主机名(域名) |
$request_uri | 访问的url地址 |
$status | 状态码 |
$http_referer | referer |
$http_user_agent | user_agent |
- 定义test.com的日志:
用curl访问test.com后查看日志:
Nginx日志切割
- 自定义shell 脚本
vim /usr/local/sbin/nginx_log_rotate.sh
写入如下内容
#! /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` //跟Nginx的-s重新加载配置文件一样
执行一下这个脚本,sh执行,-x是显示执行的过程:
sh -x /usr/local/sbin/nginx_log_rotate.sh
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; //过期时间
access_log off;
}
location ~ .*\.(js|css)$ //匹配js,css文件
{
expires 12h;
access_log off;
}
保存退出后记得-t,-s测试加载配置文件
curl测试:
以gif,js等等这些文件结尾的静态文件都不会记录在日志中