zoukankan      html  css  js  c++  java
  • gzip0

    但是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 MSIE !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

  • 相关阅读:
    C++11 新特性之 序列for循环
    有一种acm题目叫做,奇葩!
    00103_死锁、Lock接口、等待唤醒机制
    Oracle物化视图梳理
    16 Managing Undo
    [.NET开发] C#编程调用Cards.dll实现图形化发牌功能示例
    [.NET开发] C#连接MySQL的两个简单代码示例
    [.NET开发] C#实现发送手机验证码功能
    [.NET开发] C#实现剪切板功能
    [.NET开发] C#实现的SQL备份与还原功能示例
  • 原文地址:https://www.cnblogs.com/ldms/p/8317740.html
Copyright © 2011-2022 走看看