11月27日
12.10 Nginx 访问日志
·日志格式
· vim /usr/local/nginx/conf/nginx.conf 搜索log_format
$remote_addr 客户端IP(公网IP)
$http_x-forwarded_for 代理服务器的ip
$time_local 服务器本地时间
$host f访问主机名(域名)
$request_uri 访问的 url地址
$status 状态码
$http_referer referer
$http_user_agent user_agent
· 除了在主配置文件nginx.com里定义日志格式外,还需要在虚拟主机配置文件里增加
· vim /usr/local/nginx/conf/vhost/test.com.conf
access_log /tmp/1.log aming;
这里的aming就是在nginx.conf中定义的日志格式名字
· /usr/local/nginx/sbin/nginx -t && -s reload 检查脚本和重新加载
· curl -x127.0.0.1:80 test.com -I
· cat /tmp/1.log
12.11 Nginx日志切割
Nginx日志切割
· 自定义shell脚本
· vim /usr/local/sbin/nginx_log_rotate.sh 写入如下内容
#!/bin/bash
##假设nginx的日志存放路径为/tmp/
d=‘date -d “-a day” +%Y%m%d’ 前一天日期
logdir=“/tmp/” 日志存放目录
nginx_pid=“/usr/local/nginx/logs/nginx.pid” pid路径
cd $logdir 进入日志存放目录
for log in ‘ls *.log’ 循环
do
mv $log $log-$d 改名,前一天日期加后缀
done
/bin/kill -HUP ‘cat $nginx_pid’ 重新加载,生成新的test.conf.log
sh -x /usr/local/sbin/nginx_log_rotate.sh sh执行脚本,-x脚本执行过程
find /tmp/ -name *.log-* -type -f -mtime +30 |xargs rm 删除30天前的日志文件
· crontab -e 任务计划
0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh
每天凌晨0点执行下这个脚本
12.12 静态文件不记录日志和过期时间
·vim /usr/local/nginx/conf/vhost/test.com.conf 配置加入如内容
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 匹配gif或者jp
{
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 relocd 重新加载
测试
cd /data/wwwroot/test.com/ 进入目录
vim 1.gif 随便编辑两个文件
vim 2.js
curl -x127.0.0.1:80 test.com/1.gif 访问1.gif
curl -x127.0.0.1:80 test.com/2.js 访问2.js
curl -x127.0.0.1:80 test.com/index.html 访问index.html
cat /tmp/test.com.log 最后查看访问日志,只显示访问index的记录
curl -x127.0.0.1:80 -I test.com/2.js 查看过期时间 (max-age=43200)