Apache中的mod_deflate压缩模块

11 篇文章 0 订阅

启用Apache压缩模块mod_deflate:

 

网站随着用户访问量的增加和内容量的增加,网站的带宽会不断的增加,随之就是网站成本的增加,并且当内容量增大的时候,客户端如果带宽小,就会影响用户的体验,因此从这两方面考虑,网站的某些内容必须经过压缩之后再传给用户,然后在用户客户端进行解压,来实现双方共赢的效果。

 

从服务器角度来说Web架构分为 LAMP和LNMP

从应用角度来说分为 CS模式和BS模式:

Client & Server——> 收银(超市、银行)

Browser & Server ——> 个人(浏览器)  Browser发送请求——Server接受、处理、返回——Browser解析、展示。

 

目前一个网站上的资源非常多,图片、视频等等都是需要压缩之后才可以传给用户。Server来进行压缩,Browser来进行解压。

Apache的压缩要用到mod_deflate模块,该模块提供了DEFLATE传输过滤器,允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽,它的核心思量就是把文件现在服务器进行压缩,然后再进行传输,这样可以显著减少文件传输的大小,当传输完毕后,客户端浏览器会重新对压缩过的内容进行解压缩,如果没有特殊情况的话,所有的文本内容都应该能被gzip压缩,例如:html(php),js、css、xml、txt等。

 

安装mod_deflate模块两种方式:

1、编译的时候跟上--enable-deflate 即可实现安装

2、DSO方式安装。

扩展:DSO:Dynamic shared object动态共享对象,DSO模块可以在编译服务器之后编译,也可以用Apache扩展工具(apxs)编译并增加,使用DSO方式安装,/usr/local/apache/bin/apxs后跟的参数详解如下:

-c 此选项表明需要执行编译操作

-i 此选项表示需要执行安装操作,以安装一个或多个动态共享对象到服务器的modules目录。

-a 此选项自动增加一个loadModule行到httpd.conf文件中,以激活此模块,或者,如果此行已经存在,则启用之。

 

我个人的环境里面再安装之前的预编译的时候,就已经进行了安装,如果真的忘记在预编译的时候进行安装,也没关系,可以使用DSO的方式进行安装;

由于我已经安装了mod_deflate,所以找一个其他模块来演示;

/usr/local/apache/modules      #该目录下是我们已经安装了的模块

/usr/local/src/httpd-2.4.16/modules/filters/    #该文件是http的源码安装包里面所有的模块内容

经过对比发现mod_data.c模块是没有的,所以使用DSO的方式进行安装:

安装的时候需要在/usr/local/src/httpd-2.4.16/modules/filters/ 路径下执行apxs,因为mod_data.c在filters文件下面:

[root@Lamp ~]# cd /usr/local/src/httpd-2.4.16/modules/filters/
[root@Lamp filters]# /usr/local/apache/bin/apxs -c -i -a mod_data.c

 

查看mod_data.so模块已经加载在了apache安装路径下的modules目录下:

查看Apache的配置文件就存在了mod_data.so:      /etc/httpd/httpd.conf

 

检查mod_deflate是否安装:

 

配置压缩参数:

[root@Lamp ~]# vim /etc/httpd/httpd.conf    #确认下面这一行是打开的,

 

此行解锁之后再进行下面的操作,不然下面的操作会报错:

在http的配置文件的末尾插入:

<ifmodule mod_deflate.c>

   DeflateCompressionLevel 9  

   SetOutputFilter DEFLATE 

   DeflateFilterNote Input instream

   DeflateFilterNote Output outstream

   DeflateFilterNote Ratio ratio 

   AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript  

</ifmodule>

注释:

<ifmodule mod_deflate.c>

   DeflateCompressionLevel 9      #压缩等级,越大效率越高,消耗CPU也越高 - 压缩为什么消耗CPU - 压缩 - 算法。

   DeflateCompressionLevel 9是指压缩程度的等级,从1到9,9是最高等级。据了解,这样做最高可以减少8成大小的传输量(看档案内容而定),最少也能够节省一半。

   DeflateCompressionLevel 预设可以采用 6 这个数值,以维持耗用处理器效能与网页压缩质量的平衡。

注:一般压缩等级使用6或8

   SetOutputFilter DEFLATE   #启用压缩

   DeflateFilterNote Input instream #声明输入流的byte数量

   DeflateFilterNote Output outstream  #声明输出流的byte数量

   DeflateFilterNote Ratio ratio   #声明压缩的百分比

   AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript  #仅压缩,限制特定的MIME类型文件

</ifmodule>

注:

1、如果是虚拟主机,需要在<VirtualHost*:80></VirtualHost>中添加配置即可实现压缩

2、图片和视频本身就是压缩格式,一般不需要压缩的。有些小图片和视频压缩后还会变大。

总结:我们在企业生产环境中时,在启用mod_deflate时,一定要注意,对于太小的文件和某些格式的图片不要对它们进行压缩,有可能越压越大。

扩展:AddOutputFilterByTypeDEFLATE后跟的所有的压缩文件类型,后期可以参照选择。

text/plain text/html text/php text/xml text/css text/javascript

application/xhtml+xml application/xml application/rss+xml application/atom_xml application/x-javascript application/x-httpd-php image/svg+xml image/gif image/png  image/jpe image/swf image/jpeg image/bmp

 

修改完apache的配置文件之后,Apache重启之后,压缩功能也就开启了;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值