1、为什么要用GZIP实现网页和图片的压缩?nginx怎么实现压缩的?

  • 使用Gzip压缩可以提高CPU 使用率,可以减少服务器发送的字节数量。这就使人们觉得页速度加快了,并且还减少了带宽的用量。 根据所发送数据、可以压缩的程度以及客户端浏览器是否支持(IIS 只会向支持 Gzip压缩的客户端发送经过 Gzip压缩的内容,如 Internet Explorer 6.0 和 Firefox),您的服务器每秒可以服务于更多的请求。 实际上,几乎每当您减少所返回数据的数量时,都会增加每秒请求数。

  • Nginx支持对指定类型的文件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文件大小将比源文件显著变小,这样有助于降低出口带宽的利用率,降低企业的IT支出,不过会占用相应的CPU资源。

  • 开源使用"gzip on;"参数来启用压缩,默认是关闭的。

  • Nginx开启Gzip压缩功能, 可以使网站的css、js 、xml、html 文件在传输时进行压缩,提高访问速度,进而优化Nginx性能,经过Gzip压缩后页面大小可以变为原来的30%甚至更小

2、web服务器处理请求过程

3、实现网页的压缩

第一步:将nginx配置文件内容增添到大于1k;

[root@server2 html]# du -sh index.html
4.0K    index.html
[root@server2 html]# cat ../logs/access.log >>index.html    //将logs文件内容追加到Index.html文件后面
[root@server2 html]# du -sh index.html     //文件增大了
204K    index.html

第二步:用浏览器访问,查看文件大小。

ctrl  +  shift  + i打开浏览器的开发界面
ctrl  +  shift  + delete 清除浏览器的缓存


和配置的文件差不多大小。
第三步:进行文件的大小压缩

[root@server2 sbin]#vim ../conf/nginx.conf
[root@server2 sbin]# ls
nginx
[root@server2 sbin]# ./nginx -s reload
[root@server2 sbin]# ./nginx -t    //进行语法测试,若失败不加载给worker进程
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful


更详细的解释:

Nginx压缩相关参数概述

1>.gzip on | off;

Nginx支持对指定类型的文件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文件大小将比源文件显著变小,这样有助于降低出口带宽的利用率,降低企业的IT支出,不过会占用相应的CPU资源。

开源使用"gzip on;"参数来启用压缩,默认是关闭的。

2>.gzip_comp_level lenvel;

压缩比例由低到高从1到9,默认为1。但需要注意的是压缩比设置的越高就会越消耗CPU的资源,因此在生产环境中我们会设置该参数的值在3~5之间,最好不要超过5,因为随着压缩比的增大的确会降低传输的带宽成本但发送数据前会占用更多的CPU时间分片。

具体设置级别为多少,得咱们运维人员对CPU的利用率做一个监控,如果CPU利用率过低则不会使用,可以酌情将压缩级别参数调大,当然调大后依旧需要观察一段业务高峰期时间CPU的利用率,最终会找到一个适合你们公司业务的压缩比例。

3>.gzip_disable "MSIE [1-6]\.";

禁用IE6 gzip功能。

4>.gzip_min_length 1k;

gzip压缩的最小文件,小于设置值的文件将不会压缩

5>. gzip_http_version 1.0|1.1;

启用压缩功能时,协议的最小版本,默认HTTP/1.1

6>.gzip_buffers number size;

指定Nginx服务需要向服务器申请的缓存空间的个数*大小,默认32 4k|16 8k;

7>.gzip_types mine-type ...;

指明仅对哪些类型的资源执行压缩操作;默认为gzip_types text/html,不用显示指定,否则出错。

8>.gzip_vary on| off;

如果启用压缩,是否在响应报文首部插入“Vary: Accept-Encoding”,建议开启该参数,让用户知道咱们服务端是支持压缩的。

9>.Nginx对文件的压缩功能是依赖于模块ngx_http_gzip_module,该模块默认是已经安装的。

清除浏览器缓存,查看此时传送文件的大小:

由此可见传输过程中,网页大小已被压缩为2.98k。

3、实现网页图片的大小压缩

第一步:在共享目录下新建一个目录,用来放照片。

 [root@server2 html]# mkdir download
[root@server2 html]# cd download/
[root@server2 download]# ls
雷霆专业完美证件照1寸1.jpg    ####照片为.jpg格式,那么在gzip压缩模块中,就要添加该种类型的文件。

第二步:重新编译nginx服务,为其添加传输图片模块。

[root@server2 download]# make clean    ///删除编译好的二进制文件,重新生成
rm -fr makefile
[root@server2 nginx-1.18.0]# ./configure --help |grep image--with-http_image_filter_module    enable ngx_http_image_filter_module--with-http_image_filter_module=dynamicenable dynamic ngx_http_image_filter_module
[root@server2 nginx-1.18.0]# ./configure --prefix=/usr/local/nginx  --with-http_image_filter_module --with-http_image_filter_module=dynamic


第三步:在网上下载该库并安装点击此处进行下载,再次进行编译,并将编译好的二进制文件读进nginx执行脚本中,将该执行脚本移动到/usr/local/nginx/sbin目录下替换原来的执行脚本。


所以我们下载了gd-devel-2.0.35-26.el7.x86_64.rpm

[root@server2 nginx-1.18.0]# yum install -y '//tmp/VMwareDnD/4XttB8/gd-devel-2.0.35-26.el7.x86_64.rpm'
[root@server2 nginx-1.18.0]# ./configure --prefix=/usr/local/nginx  --with-http_image_filter_module --with-http_image_filter_module=dynamic    //再次进行编译

此次编译成功。

[root@server2 nginx-1.18.0]# make     //make是将makefile二进制文件中的内容加载到nginx执行脚本中,不能进行make install,否则会将之前所有的文件配置恢复到刚安装阶段
[root@server2 objs]# cp nginx //usr/local/nginx/sbin/
cp: overwrite ‘//usr/local/nginx/sbin/nginx’? y

第四步:将成功下载的模块ngx_http_image_filter_module.so ,移动到/usr/local/nginx/modules下,并将该模块加载到配置文件中,并且将文件类型为.jpg的格式添加到配置文件中。

[root@server2 nginx-1.18.0]# cd objs/
[root@server2 objs]# ls
autoconf.err  nginx.8             ngx_http_image_filter_module_modules.c  ngx_modules.c
Makefile      ngx_auto_config.h   ngx_http_image_filter_module_modules.o  ngx_modules.o
nginx         ngx_auto_headers.h  ngx_http_image_filter_module.so         src
[root@server2 objs]# cd /usr/local/nginx/
[root@server2 nginx]# mkdir modules
[root@server2 nginx]# cd modules/
[root@server2 modules]# ls
[root@server2 modules]# mv /mnt/nginx-1.18.0/objs/ngx_http_image_filter_module.so .
[root@server2 modules]# ls
ngx_http_image_filter_module.so

[root@server2 modules]# cd ..
[root@server2 nginx]# cd conf/
[root@server2 conf]# vim nginx.conf
[root@server2 conf]# ../sbin/nginx -s reload
[root@server2 conf]# ../sbin/nginx -t     ///检测配置文件中语句的正确
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful


将类型为.jpg格式文件压缩加入gzip:

将默认发布目录html/下的文件存在目录download/写入配置文件中:

看看resize含义:

重新加载服务,在服务器端查看是否压缩:

配置nginx的Gzip功能实现网页的压缩和图片的压缩相关推荐

  1. php 设置expires,如何配置nginx的expires功能

    配置expires expires起到控制页面缓存的作用,合理的配置expires可以减少很多服务器的请求 要配置expires,可以在http段中或者server段中或者location段中加入lo ...

  2. 转载:配置nginx支持pathinfo功能

    原文地址:http://linuxguest.blog.51cto.com/195664/694319 nginx模式不支持pathinfo模式,类似info.php/hello形式的url会被提示找 ...

  3. nginx的gzip压缩功能

    我们在开发网站的时候,应该要考虑到pv,因为pv比较大可能会造成服务器带宽不够用,进而导致用户体验变差. 这个时候我们就可以考虑用nginx的gzip功能. 在nginx中开启gzip压缩功能很简单, ...

  4. 从0开始,在Linux中配置Nginx反向代理、负载均衡、session共享、动静分离

    写这篇文章花费了我近一周的时间,参考网上许多优秀的博客文章,我不敢说写的很好,至少很全很详细.本文先介绍原理部分,然后再进行实战操作,我认为这样才会有更深的理解,不过这也导致了文章篇幅很长.但是,如果 ...

  5. 【Android 内存优化】图片文件压缩 ( Android 原生 API 提供的图片压缩功能能 | 图片质量压缩 | 图片尺寸压缩 )

    文章目录 一. 图片压缩 二. 图片文件压缩类型 三. Android 原生 API 提供的质量压缩 四. Android 原生 API 提供的尺寸压缩 一. 图片压缩 图片压缩 : ① 文件压缩 : ...

  6. Nginx中Gzip压缩功能的实例配置

    Gzip压缩功能的实例配置 gzip on; #开启gzip功能 gzip_types *; #压缩源文件类型,根据具体的访问资源类型设定 gzip_comp_level 6; #gzip压缩级别 g ...

  7. nginx 带宽_Nginx的Gzip功能

    程序员自由之路 | 作者 urlify.cn/eyuUVr | 来源 什么是HTTP压缩 有时候客户端和服务器之间会传输比较大的报文数据,这时候就占用较大的网络带宽和时长.为了节省带宽,加速报文的响应 ...

  8. nginx缓存配置及开启gzip压缩

    一:nginx缓存配置 在前一篇文章,我们理解过http缓存相关的知识点, 请看这篇文章. 今天我们来学习下使用nginx服务来配置缓存的相关的知识. nginx配置缓存的优点:可以在一定程度上,减少 ...

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

    Nginx开启Gzip压缩功能, 可以使网站的css.js .xml.html 文件在传输时进行压缩,提高访问速度, 进而优化Nginx性能!  Web网站上的图片,视频等其它多媒体文件以及大文件,因 ...

最新文章

  1. 前端console log之坑。。。
  2. 甲骨文第四财季SAAS和PAAS收入增长66%
  3. python国产_Python勒索软件来袭,国产杀软集体失身
  4. poj 2390 Bank Interest(计算本利和)
  5. 小程序原生组件调用mpvue父组件方法
  6. KAFKA 最新版 Shell API单机生产与消费
  7. 小程序input wxss_19. 教你零基础搭建小程序:wxss-尺寸单位
  8. java面试 上传文件_字节跳动面试官,我也实现了大文件上传和断点续传
  9. linux losetup
  10. Mysql经常使用函数汇总
  11. CAD2012安装错误
  12. Apache Solr 4.0今日发布
  13. 6-1 多态性与虚函数
  14. 显示器性能测试软件,MonitorTest(显示器性能测试软件) V4.0.1001 官方版
  15. matlab有限域多项式除法_第四章多项式和有限域.ppt
  16. Testlink开启图片上传功能
  17. vs2017 错误:当前页面的脚本发生错误
  18. python中的坐标轴的画法
  19. Matlab模拟蒲丰投针实验计算Π值
  20. 四元数矩阵向量积 matlab

热门文章

  1. 匿名软件竟成网络侵权避风港
  2. android 检测电话号码,Android 9能在文本中精准检测地址和号码,是这样做到的
  3. welearn考试切屏会有显示吗_welearn视听说教程4答案截图
  4. 了解你的敌人:跟踪僵尸网络
  5. ARCGIS定义CGCS_2000坐标系下的高斯投影
  6. Detail enhancement for high-dynamic-range infrared images based onguided image filter 阅读笔记
  7. JavaWeb 使用ajax上传文件并显示进度条等上传信息
  8. okGo详细使用步骤(一)
  9. 【STM32F767】使用RTThread和TouchGFX实现DIY数字仪表(三)——获取温湿度传感器数据
  10. 铁电存储器F-RAM