码迷,mamicode.com
首页 > 其他好文 > 详细

6月8日任务(12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件)

时间:2018-06-08 12:18:27      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:笔记

课程名称: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 (定义变量)

  • d=20180605 (d就是变量)
  • logdir=/tmp/ (日志目录)
  • nginx_pid=/usr/local/nginx/logs/nginx.pid
  • cd /tmp/ (进入日志目录)
    ++ ls test.com.log yum.log (有两个日志文件,循环了两次)
  • for log in ‘ls *.log
  • mv test.com.log test.com.log-20180605 (第一次循环生成日志后面加了日期后缀)
  • for log in ‘ls *.log
  • mv yum.log yum.log-20180605 (第二次循环日志生成后面加了日期后缀)
    ++ cat /usr/local/nginx/logs/nginx.pid (cat下PID)
  • /bin/kill -HUP 2026 (加载后生成新的文件yum.log和test.com)
    技术分享图片
    写完脚本后需要写任务计划
    [root@localhost vhost]# crontab -e
    每天凌晨零点去执行脚本
    0 0 /bin/bash /usr/local/sbin/nginx_log_rotate.sh
    技术分享图片
    30天以前的日志做删除
    [root@localhost vhost]# find /tmp/ -name
    .log-* -type f -mtime +30 |xargs rm

课程名称: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!