6月8日任务(12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件)
课程名称: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的效果(过期时间)
转载于:https://blog.51cto.com/13613708/2126217
6月8日任务(12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件)相关推荐
- 永恒传奇三服务器维护中,仙境传说ro3月3日5点-10点停服维护
亲爱的冒险者, 我们将于3月3日5点-10点进行一次停服维护,此次维护将更新部分游戏内容并修复一些问题.维护期间无法进入游戏,敬请谅解. 维护结束后,我们将向全体冒险者发放5个「冒险家硬币」.3个「暖 ...
- 守护永恒服务器维护,2月24日5点-10点游戏停服维护公告
亲爱的冒险者, 我们将于2月24日5点-10点进行一次停服维护,此次维护将更新部分游戏内容并修复一些问题.维护期间无法进入游戏,敬请谅解. 维护结束后,我们将向全体冒险者发放5个「冒险家硬币」.3个「 ...
- ro手游服务器维护公告,仙境传说手游 7月22日5点-10点停服维护公告
亲爱的冒险者, 我们将于7月22日5点-10点进行一次停服维护,此次维护将更新部分游戏内容并修复一些问题.维护期间无法进入游戏,敬请谅解. 维护结束后,我们将向全体冒险者发放5个「冒险家硬币」.3个「 ...
- AI开发者大会:2020年7月3日09:50--10:10唐杰《人工智能的下一个十年》
AI开发者大会:2020年7月3日09:50--10:10唐杰<人工智能的下一个十年> 导读:人工智能的第三次浪潮中,超越深度学习-ML和DL需要结合符号AI:自监督学习将会大放异彩. N ...
- 安卓10和android区别,华为8月9日发布安卓10.0系统 华为EMUI 10.0功能及适配机型 华为安卓系统和鸿蒙OS区别...
华为8月9日发布安卓10.0系统 华为EMUI 10.0功能及适配机型 华为安卓系统和鸿蒙OS区别 根据最新消息显示,华为终端官方再次给出消息称,在8月9日华为开发者大会首天,他们将发布新一代基于An ...
- AI:2020年6月22日北京智源大会演讲分享之11:30-12:20Jorge教授《Zero-Order Optimization Methods with Applications to RL》
AI:2020年6月22日北京智源大会演讲分享之11:30-12:20Jorge教授<Zero-Order Optimization Methods with Applications to R ...
- 11月22日北京.net俱乐部活动ppt下载以及11月19日微软西格玛IE8开发讲座ppt下载
11月22日北京.net俱乐部活动ppt下载以及11月19日微软西格玛IE8开发讲座ppt下载 请点击下面的连接下载 [url]http://cid-b10793e754ad25f7.skydrive ...
- 清华大学教评中心 <jpxzx2019@mail.tsinghua.edu.cn> 12月24日9:00-11:10试讲评审材料(庞观和朱峰老师)
➤01 邮件通知 卓老师好!感谢您担任线上试讲评审专家! 1.评审时间: 2020年12月24日(周四)9:00-11:10 2.试讲教师及内容: 12月24日 上 午 上午 试讲时间 9:00-10 ...
- 10月25日lol服务器维护,《LOL》lol10月25日停机维护到什么时候 10.25维护结束时间...
导 读 英雄联盟8.21版本将在今天更新后全面上线!这次版本新增了万圣节皮肤,以下是本次更新说明,一起来了解一下吧. [英雄联盟版本更新说明] [更新版本]8.21 [更新时间]2018年10月25日 ...
- 3月20日, Java 10 正式发布了!
3 月 20 日,Oracle 宣布 Java 10 正式发布.官方已提供下载:http://www.oracle.com/technetwork/java/javase/downloads/inde ...
最新文章
- 我的Android笔记--我对安卓系统的一些了解
- 10年前,三星差点收购了安卓
- k8s pod里访问不到外部ip_K8S中的Service的存在理由
- jquery中siblings方法配合什么方法一起使用
- 吴恩达入驻知乎,涨粉秒过万!知乎首答:如何系统学习机器学习
- 计算机科学与技术 军校,清华大学计算机科学与技术系
- 数据结构与算法——二叉树与图汇总整理
- cmake的一些小经验
- 转:单片机C语言中的data,idata,xdata,pdata,code
- 关于Chrome浏览器(Chrome Stable、 Chrome Canary 、Chromium)
- javaweb网上鞋店
- docker安装mysql后如何修改默认端口
- SolidWorks导入3DSource零件库的模型方法介绍
- python词云词频分析_Python数据挖掘:WordCloud词云配置过程及词频分析
- 多示例论文泛读:Revisiting Multiple Instance Neural Networks (2016 mi-Net MI-Net)
- RabbitMQ-核心概念及AMQP协议
- AI 玩王者荣耀狂上分!1 天训练强度达人类 440 年,网友:已卸载
- VOIP信号传输过程
- 二、浙江专升本高等数学考点-极限
- java上溯造型与下溯造型
热门文章
- 月均数据_药品销售数据分析案例
- select函数fdwrite用法_NumPy 分段函数
- python相机拍照显示_从solvePnP获取摄影机姿势
- 24c04硬件地址位_硬件刷题篇(一)
- linux 查找只读文件夹,Linux系统中查找命令find的使用方法(二)
- mysql调优explain_MySql性能调优利器之Explain
- 12_python基础—函数基础(参数、返回值、调用)
- pytest命令行传参
- html动态图标代码,SVG动态图标是如何实现的
- java类型过滤文本_JAVA实现过滤掉文本中的表情