标签:笔记
课程名称:12.10?Nginx访问日志[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
定义日志格式
combined_realip:日志格式名字,可以写任意,但是后面应用都要写这个
log_format ys ‘$remote_addr $http_x_forwarded_for [$time_local]‘
‘ $host "$request_uri" $status‘
‘ "$http_referer" "$http_user_agent"‘;
除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加
[root@localhost ~]# vim /usr/local/nginx/conf/vhost/test.com.conf
增加access_log /tmp/test.com.log ys;
检测加载
课程名称:12.11?Nginx日志切割
笔记内容:
Nginx没有自带的日志切割工具,借助系统自带可以使用系统logrotate命令切割日志的方法(自己扩展)
也可以自己写脚本(课程)
Shell脚本(所有的脚本放在/usr/local/sbin目录下)
创建[root@localhost ~]# vim /usr/local/sbin/nginx_log_rotate.sh
样例:
#! /bin/bash
/data/logs/ (假设nginx的日志存放路径)
d=date -d "-1 day" +%Y%m%d
(为了生成日期,年月日)
([root@localhost ~]# date -d "-1 day" +%Y%m%d
20180605 昨天的日期显示的命令 切割的日志一定是昨天的)
logdir="/data/logs" (日志路径)
nginx_pid="/usr/local/nginx/logs/nginx.pid"
(找PID 为了执行最下面/bin/kill -HUP cat $nginx_pid
这条命令)
cd $logdir (到日志路径下)
做循环
举例:
([root@localhost vhost]# for f in ‘ls ‘ ; do ls -l $f ; done
f代表文件(变量名字),in在哪里进行循环,ls则是显示出来,
这里就是在这两个文件中进行循环;ls这个目录下都有哪些文件每一个文件作为它一次循环的对象,第一次$f为aaa.com.conf,第二次$f为 test.com.conf,同理下面这个循环)
for log in ls *.log
(以log作为变量,ls查看有哪些log)
do
mv $log $log-$d (所有的log改下名字加上日期)
done
/bin/kill -HUP cat $nginx_pid
(此命令与 /usr/local/nginx/sbin/nginx -s reload加载是一样的,日志切割,实际还是在写原来的日志,只有加载了才会写新的日志)
执行脚本 sh为执行脚本命令 -x查看脚本执行的过程
[root@localhost vhost]# sh -x /usr/local/sbin/nginx_log_rotate.sh
++ date -d ‘-1 day‘ +%Y%m%d (定义变量)
ls *.log
‘ls *.log
‘课程名称:12.12?静态文件不记录日志和过期时间
笔记内容:
[root@localhost ~]# vim /usr/local/nginx/conf/vhost/test.com.conf
location ~ ..(gif|jpg|jpeg|png|bmp|swf)$
(location匹配的意思 \脱义符(为了精准匹配 文件名.jpg) |或者的意思)
{
expires 7d; (过期时间,缓存在用户浏览器中时间)
access_log off;
}
location ~ ..(js|css)$
{
expires 12h;
access_log off;
}
检查和加载
配置文件中expires的效果(过期时间)
6月8日任务(12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件)
标签:笔记
原文地址:http://blog.51cto.com/13613708/2126217