但是Apache是专门为PHP所匹配的,其兼容性最好),类似于IIS。下面我们具体来说说Apache里怎么启用gzip压缩:
Apache启用gzip
  如果要开启gzip的话,一定要打开下面二个模块.
  LoadModule headers_module modules/mod_headers.so
  LoadModule deflate_module modules/mod_deflate.so
  设置压缩比率,取值范围在 1(最低) 到 9(最高)之间,不建议设置太高,虽然有很高的压缩率,但是占用更多的CPU资源.
  DeflateCompressionLevel 3
  AddOutputFilter DEFLATE html xml php js css
  
  SetOutputFilter DEFLATE
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-vary
  SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
  SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
  Header append Vary User-Agent env=!dont-vary #对代理的设置
  
  下面二个测试网站
  http://www.whatsmyip.org/mod_gzip_test/
  http://www.gidnetwork.com/tools/gzip-test.php
  测试数据对css
  Original Size: 44 KB
  Gzipped Size: 10 KB
  Data Savings: 77.27%
  测试数据js
  Original Size: 6 KB
  Gzipped Size: 2 KB
  Data Savings: 66.67%
  测试数据php
  Original Size: 62 KB
  Gzipped Size: 15 KB
  Data Savings: 75.81%
  上面只是随机拿的几个数据,看的出来,使用了gzip压缩后文件小多了.
  另外讲一下,有关squid对gzip的处理
  在squid中,对同一个URL只保留一份缓存。对于如果不同browser(是否支持压缩)如果频繁交替访问,例如:对某个cache住的目标,一
个http/1.0请求可能会导致squid强制更新其缓存。但接下来的另一个http/1.1请求又会导致squid再次更新缓存。这样那squid缓
存数据就要频繁更新,这就极大的降低了cache命中率。
  不过还好,现实环境中不支持压缩的browser毕竟是很少的情况,所以对于缓存命中率的降低很有限.
  这个神通广大的模块就是mod_gzip.它通过用和gzip一样的压缩算法对apache发出的页面进行压缩,可能的话可以把页面压缩成为原来大小
的十份之一。哪,如果10K的页面只要传1K这不就是提速10倍嘛。当然一般网页只可以达到3-6倍。那也很不错。对吧。连google这样一个大的网站
都采用这个技术。你还不快跟上?
  这样一个好东东,来来来,我告诉你如何安装:分3步,1、下载,2、修改配置,3、测试。
  下载到http://www.cssao.com/Onload/mod_gzip-2.1.0.tar.gz 下载mod_gzip.c 还有它的补丁。
  安装, 配置
  把mod_gzip放到你的apache的源代码目录下,新建一个mod_gzip目录如果需要补丁(针对1.3.17.la版) 还需运行:
  patch mod_gizp.c
  按你需要,在配置中选择动态DSO或静态编译进apache系统。如何处理在README中讲得很清楚,如-add-module=mod_gzip.c, make,make install等等。这里不多讲。
  把下列配置加入httpd.conf尾部。
  # MOD_GZIP configuration
  mod_gzip_on Yes
  mod_gzip_minimum_file_size 1002
  mod_gzip_maximum_file_size 0
  mod_gzip_maximum_inmem_size 60000
  mod_gzip_item_include mime "application/x-httpd-php"
  mod_gzip_item_include mime text/*
  mod_gzip_item_include mime "httpd/unix-directory"
  mod_gzip_dechunk Yes
  mod_gzip_temp_dir "/tmp"
  mod_gzip_keep_workfiles No
  mod_gzip_item_include file ".php3$"
  mod_gzip_item_include file ".txt$"
  mod_gzip_item_include file ".html$"
  mod_gzip_item_exclude file ".css$"
  mod_gzip_item_exclude file ".js$"
  在保存修改后运行
  …/bin/apachectl configtest确保配置修改无误。
  然后用 apachectl restart 指令重起服务。
  修改,测试
  在宣布做好了之前在测试一下是优秀程序员的习惯。为了尽量不影响你的用户的浏览,我们可以用把新的apache驱动在8080端口上或者用指令控制mod_gzip起作用的目录,而不是一下子全用mod_gzip.
  用法如下:
  MOD_GZIP configuration
  没有问题后你就可以让你的用户很开心的发现’XX网站现在好快哦。’
Mod_gzip真的很神奇,100K的HTML大文档只要12K就可以传到用户端了。越先采用这个技术你的用户对你的网站的高速度印象就越深。不过有所得必有所失,由于解压是在客户端进行的,效果和用户的浏览器有一定关系。
注:不管是IIS环境和apache环境设置gzip都会对消耗一些服务器资源,大家用的时候可以斟酌一二,如果是做站群,几百个站开启这个可能会得不偿失。这里提供一个检测gzip压缩的地址:http://tool.chinaz.com/Gzips/ ,大家可以看到我的网址压缩率可以达到接近70%,如图:

         我们通常说的gzip压缩其实都是指静态的压缩,只是针对页面代码,对图片是无能为力的,如果是图片站只能通过图片本身来进行优化了。
我上面讲的是在windows系统下设置,而Nginx自带的有gzip模块,这个模块支持在线实时压缩输出数据流,经过良好的配置优化,可以大幅的提升网站的输出效率,这里就不讨论了。
好了gzip在IIS环境和apache环境设置方法都已经介绍完了,希望此文章能帮助到大家,谢谢支持!

此文为深圳东禾科技原创整理,转载请注明 http://www.cssao.com/news-details-627.html

gzip0的更多相关文章

随机推荐

  1. URL中传递参数给视图函数

    1. 采用在url中使用变量的方式: 在path的第一个参数中,使用<参数名>的方式可以传递参数.然后在视图函数中也要写一个参数,视图函数中的参数必须和url中的参数名称保持一致,不然就找 ...

  2. ECR是什么意思

    有效客户反应简称为ECR(efficient consumer response).它是1992年从美国的食品杂货业发展起来的一种供应链管理战略.这是一种分销商与供应商为消除系统中不必要的成本和费用并 ...

  3. 黄聪:is_file和file_exists效率比较

    目前在弄文件缓存的时候用到了判定文件存在与否,is_file()还是file_exists()呢?is_file和file_exists两者效率比较起来,谁的运行速度更快呢?还是做个测试吧: 1 2 ...

  4. axios 上传图片

    let data = new FormData(); for (var i = 0; i < files.length; i++) { let file = files.item(i); dat ...

  5. 【Java】Java初始化过程总结

    概述 Java字节代码:byte[] Java类在JVM的表现形式:Class类的对象: Java源代码被编译成class字节码 : Java字节代码 --> Class类的对象: 加载:把Ja ...

  6. 学习笔记之Python最简编码规范

    Python最简编码规范 - 机器学习算法与Python学习 https://mp.weixin.qq.com/s/i6MwvC4jYTE6D1KHFgBeoQ https://www.cnblogs ...

  7. 学习笔记之Supervised Learning with scikit-learn | DataCamp

    Supervised Learning with scikit-learn | DataCamp https://www.datacamp.com/courses/supervised-learnin ...

  8. JVM -verbose参数详解(转)

    原文 http://www.javaranger.com/archives/367 java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息. java -verbos ...

  9. docker拉取oracle11g镜像配置

    开始拉取oracle11g镜像 下载过程稍长,镜像大小6.8G(之前拉取过了,所以就不截图了) #docker pull registry.cn-hangzhou.aliyuncs.com/helow ...

  10. postgresql数据库常用操作命令及SQL语言

    (1)登录 peng@peng-virtual-machine:~$ sudo -u postgres psql 以用户postgres身份登录,postgres为用户名,可有多个用户,登录时会要求输 ...