Gzip在apache2中的设置和squid对它的处理

Aug 20th, 2008

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2008/08/20/gzipsquid.html

gzip可以级大的加速网站.有时压缩比率高到80%,近来测试了一下,最少都有40%以上,还是相当不错的.在Apache2之后的版本,模块名不叫gzip,而叫mod_deflate

如果要开启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
<Location />
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 #对代理的设置
</Location>

下面二个测试网站

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毕竟是很少的情况,所以对于缓存命中率的降低很有限.
 

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
Tags: , ,
  1. chancey
    Aug 26th, 2008 at 11:08
    Reply | Quote | #1

    gzip跟deflateg根本就不是一种东西

  2. admin
    Aug 27th, 2008 at 09:22
    Reply | Quote | #2

    我也发现了,多谢

  3. apache的配置备注
    Nov 6th, 2008 at 12:49
    #3
  4. blues
    Feb 10th, 2009 at 12:25
    Reply | Quote | #5

    测试了squid2.7
    缓存可以保存两份
    但有一个诡异的问题就是
    如果一个链接第一个请求是http1.0发起的
    后续用http1.1去请求他就直接hit而不压缩了
    反过来就可以保存两份cache一切正常

  5. zhuwenhao
    Mar 8th, 2010 at 20:01
    Reply | Quote | #7

    不错,我已经在用了