但是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. Ntfs 下的链接符号创建

    熟悉过 Unix/Linux 都应该知道,Unix/Linux 用 ln 建立硬链接,ln -s 建立软链接(符号链接). 硬链接和符号链接的区别 Ntfs下的也有链接符: 内置命令:mklink   ...

  2. Java 中统计文件中出现单词的次数练习

    统计英文article.txt文件中出现hello这个单词的次数 这个是article.txt文件内容 { hello The Royal Navy is trying hello to play h ...

  3. DS二叉树--左叶子数量

    题目描述 计算一颗二叉树包含的叶子结点数量. 左叶子是指它的左右孩子为空,而且它是父亲的左孩子 提示:可以用三叉链表法,也可以用现有算法对两层结点进行判断 建树方法采用“先序遍历+空树用0表示”的方法 ...

  4. VBA Dumper v0.1.4.2, 提取office文档中的VBA代码,监查宏病毒恢复代码(演示版

    http://club.excelhome.net/thread-970051-1-1.html VBA Dumper 0.1.4.2更新,填补国内同类程序空白 此程序为演示版,可以在无office的 ...

  5. 【Mysql】MySQL高效获取记录总数SQL_CALC_FOUND_ROWS

    用法说明 分页程序一般由两条SQL组成: SELECT COUNT(*) FROM ... WHERE .... SELECT ... FROM ... WHERE LIMIT ... 如果使用SQL ...

  6. bzoj2856: [ceoi2012]Printed Circuit Board

    Description 给出一个N个顶点的简单多边形,对于每个顶点,假如它和原点连成的线段只在这个顶点处和多边形相交,就称为满足要求的顶点.你的任务是输出所有满足要求的顶点编号. Input 第一行一 ...

  7. 阿里云kubernetes被minerd挖矿入侵

    阿里云kubernetes被minerd挖矿入侵 # kubectl get rc mysql1 -o yaml apiVersion: v1 kind: ReplicationController ...

  8. PAT 乙级 1012 数字分类 (20) C++版

    1012. 数字分类 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一系列正整数,请按要求对数字进 ...

  9. [转][layui]table 的一个BUG

    转换静态表格,一直只能显示 10 行,研究发现解决方法有两个:1.参数里: limit: 30, 添加参数以确保显示更多行2.修改 table.js 里面的 F.prototype.config ,添 ...

  10. docker容器里面安装ssh

    docker容器里面安装ssh https://blog.csdn.net/chengxuyuanyonghu/article/details/76619097