博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx——实现日志切割和网页压缩(包含图片压缩)
阅读量:2344 次
发布时间:2019-05-10

本文共 5136 字,大约阅读时间需要 17 分钟。

一.nginx的日志切割

日志切割,通俗一点就是将每天产生的日志单独备份起来到一个文件夹,在企业中,常常会产生大量的日志,而nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大,非常不方便查看分析(多容易卡住,而且看起来非常不方便)。所以为了解决这种问题,以日期来作为日志的切割是比较好的,通常我们是以每日来做统计的。在企业中,我们将每一天的日志文件都打包备份,每天备份昨天产生的日志,生成新的日志记录今天的。当发生问题的时候,就会比较容易排查。

实验如下所示:

需要了解的知识如下:

  • access_log :存放成功访问nginx服务器的日志信息

  • error_log:存放访问nginx服务器失败的日志信息

  • nginx.pid:里面存放的nginx进程的pid(严格意义上来说不算日志)

补充:date的用法

在这里插入图片描述

第一步:

[root@nodel1 logs]# du -sh *4.0K	access.log4.0K	error.log4.0K	nginx.pid[root@nodel1 logs]# date +%F -d -1day2019-07-29[root@nodel1 logs]# mv access.log `date +%F -d -1day`_access.log       #使用命令进行备份[root@nodel1 logs]# ls2019-07-29_access.log  error.log  nginx.pid[root@nodel1 logs]# date +%F2019-07-30[root@nodel1 logs]# du -sh *4.0K	2019-07-29_access.log4.0K	error.log4.0K	nginx.pid

在这里插入图片描述

这种太过麻烦,我们总不能每天都去手打命令,所以我们写一个脚本,将其放定时任务中,让其自己使实行日志切割。

第二步:编写脚本

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

[root@nodel1 logs]# vim backup.sh里面写入内容如下:  1 #!/bin/bash  2   3 LOG_PATH=/usr/local/nginx/logs/oldlogs  4 CUR_LOG_PATH=/usr/local/nginx/logs/  5 YESTADAY=$( date +%F -d -1day)  6 mv $CUR_LOG_PATH/access.log  $LOG_PATH/${YESTADAY}_access.log  7 mv $CUR_LOG_PATH/error.log  $LOG_PATH/${YESTADAY}_error.log  8   9  10 kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)[root@nodel1 logs]# chmod +x backup.sh [root@nodel1 logs]# mkdir oldlogs[root@nodel1 logs]# ll    [root@nodel1 logs]# ./backup.sh[root@nodel1 logs]# ls[root@nodel1 logs]# cd oldlogs/[root@nodel1 oldlogs]# ls2019-07-29_access.log  2019-07-29_error.log

在这里插入图片描述

第三步:配置定时任务

[root@nodel1 oldlogs]# crontab -eno crontab for root - using an empty onecrontab: installing new crontab[root@nodel1 oldlogs]# crontab -l0 0 * * * /bin/bash  /usr/local/nginx/logs/backup.sh

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二.网页压缩

在实际的应用中,我们为了使nginx上的资源尽可能的少占用,而大量的高清的图片与含有信息量大的网页会占用我们非常多的资源。这不利于nginx的性能优化,为了解决这个问题,我们可以做 Gzip压缩。

Nginx性能优化功能: Gzip压缩(大幅度提高页面加载速度)

Nginx开启Gzip压缩功能, 可以使网站的css、js 、xml、html 文件在传输时进行压缩,提高访问速度,进而优化Nginx性能。

Web网站上的图片,视频等其它多媒体文件以及大文件,因为压缩效果不好,所以对于图片没有必要支压缩,如果想要优化,可以图片的生命周期设置长一点,让客户端来缓存。开启Gzip功能后,Nginx服务器会根据配置的策略对发送的内容, 如css、js、xml、html等静态资源进行压缩,使得这些内容大小减少,在用户接收到返回内容之前对其进行处理,以压缩后的数据展现给客户。这样不仅可以节约大量的出口带宽,提高传输效率,还能提升用户快的感知体验, 一举两得; 尽管会消耗一定的cpu资源,但是为了给用户更好的体验还是值得的。

经过Gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会快得多。Gzip的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析。浏览器那里不需要我们担心,因为目前的巨大多数浏览器 都支持解析Gzip过的页面

Gzip压缩作用:将响应报⽂发送⾄客户端之前可以启⽤压缩功能,这能够有效地节约带宽,并提⾼响应⾄客户端的速度。

网页压缩实验如下所示:

第一步:编辑nginx配置文件

[root@nodel1 ~]# cd /usr/local/nginx/conf[root@nodel1 conf]# ls[root@nodel1 conf]# vim nginx.conf 33     gzip  on;                   #开启gzip压缩功能 34     gzip_min_length 1;          # 设置允许压缩的页面最小字节数; 35     gzip_comp_level 2;         #设置压缩比率,最小为1,处理速度快,传输速度慢;9为最大压缩比,处理速度慢,传输速度快; 这里表示压缩级别,可以是0到9中的任一个,级别越高,压缩就越小,节省了带宽资源,但同时也消耗CPU资源,所以一般折中为6 36     gzip_types  text/plain application/x-javascript  test/css  application/xml  vascript applic    ation/x-httpd/php  image/gif   image/png;                    #制定压缩的类型,线上配置时尽可能配置多的压缩类型

在这里插入图片描述

在这里插入图片描述

补充:关于gzip的其它配置

gzip_buffers 4 16k;         #设置压缩缓冲区大小,此处设置为4个16K内存作为压缩结果流缓存gzip_http_version 1.1;      #压缩版本gzip_disable "MSIE [1-6]\.";       #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)gzip vary on;    #选择支持vary header;改选项可以让前端的缓存服务器缓存经过gzip压缩的页面; 这个可以不写,表示在传送数据时,给客户端说明我使用了gzip压缩线上使用的Gzip压缩配置

第二步:编辑nginx的默认发布文件

[root@nodel1 conf]# cd ../html[root@nodel1 html]# ls50x.html  index.html[root@nodel1 html]# cp /etc/passwd .[root@nodel1 html]# du -sh passwd 4.0K	passwd[root@nodel1 html]# vim passwd [root@nodel1 html]# du -sh passwd 1.1M	passwd[root@nodel1 html]# mv passwd index.htmlmv: overwrite ‘index.html’? y

然后在网页查看大小(按下F12,之后选择Network->Size,便可以查看到其文件大小):

在这里插入图片描述

第三步:重启服务,查看

[root@nodel1 html]# /usr/local/nginx/sbin/nginx -s reload

在这里插入图片描述

清除缓存
在这里插入图片描述

查看:

在这里插入图片描述

图片压缩实验如下所示:

第一步:重新编译。添加新的模块

[root@foundation15 Desktop]# scp -r gd-devel-2.0.35-26.el7.x86_64.rpm root@172.25.15.1:/mnt

在这里插入图片描述

[root@nodel1 conf]# systemctl stop nginx       #停止服务,要重新编译[root@nodel1 conf]# cd /mnt[root@nodel1 mnt]# ls[root@nodel1 mnt]# cd nginx-1.17.1/[root@nodel1 nginx-1.17.1]# make clean[root@nodel1 nginx-1.17.1]# yum install -y /mnt/gd-devel-2.0.35-26.el7.x86_64.rpm

在这里插入图片描述

在这里插入图片描述

[root@nodel1 nginx-1.17.1]# ./configure --prefix=/usr/local/nginx  --with-http_realip_module  --with-http_image_filter_module=dynamic

在这里插入图片描述

[root@nodel1 nginx-1.17.1]# make

在这里插入图片描述

[root@nodel1 nginx-1.17.1]# cd objs/[root@nodel1 objs]# cp nginx  -f  /usr/local/nginx/sbin/nginx     #将新的二进制文件替换成之前的二进制文件[root@nodel1 objs]# mkdir /usr/local/nginx/modules   #创建新的目录,并将图像模块放在目录下[root@nodel1 objs]# ls[root@nodel1 objs]# cp ngx_http_image_filter_module.so  /usr/local/nginx/modules

在这里插入图片描述

第二步:编辑nginx配置文件

[root@nodel1 objs]# cd /usr/local/nginx/conf/[root@nodel1 conf]# vim nginx.conf 1   load_module  modules/ngx_http_image_filter_module.so;  55  image_filter  resize 50  100;[root@nodel1 conf]# systemctl start nginx[root@nodel1 conf]# systemctl status nginx.service

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

第三步:测试

在这里插入图片描述

在这里插入图片描述

在上面的共享图片中我们可以得知,在浏览器中查询时必须得输入完整的路径,其中包括图片的名称,可是这样显然是不合理的,我们认为将图片都放置一个目录下,通过查看目录选择图片才是一种不错的方式

第四步:补充

在浏览器中只输入默认发布目录下的目录时,会发现415报错

在这里插入图片描述

[root@nodel1 search]# cd -/usr/local/nginx/conf[root@nodel1 conf]# vim nginx.conf 55                  #   image_filter  resize 50  100; 57                        autoindex  on;[root@nodel1 conf]# systemctl reload nginx

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

.再次在浏览器中输入默认发布目录下的目录时,会发现此时可以对目录下的文件进行选择并查看,然后点击redhat.jpg图片进行查看

在这里插入图片描述

在这里插入图片描述

转载地址:http://lojvb.baihongyu.com/

你可能感兴趣的文章
XML自动建表/存库
查看>>
Java实现Web服务器
查看>>
C# readonly与const的区别
查看>>
MFC 自定义消息的一般过程
查看>>
剖析Windows消息处理机制
查看>>
多线程入门教程(二)基本概念
查看>>
多线程入门教程(三)线程控制
查看>>
多线程入门教程(四)线程间通信
查看>>
多线程入门教程(五)MFC的多线程
查看>>
多线程入门教程(六)综合实例
查看>>
C/C++ 多线程学习心得
查看>>
C/C++四种退出线程的方法
查看>>
多线程编程要点
查看>>
c++CreateEvent函数在多线程中使用及实例
查看>>
c++多线程同步(1)
查看>>
Windows 下 C/C++ 多线程编程入门参考范例
查看>>
浅析stack around the variable was corrupted
查看>>
RGB与YUV转换
查看>>
YUV转RGB的相关函数
查看>>
ES(Elasticsearch)排序与相关性
查看>>