<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[Apache2下的网站如何启用Gzip(Deflate)压缩 ]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Thu, 30 Apr 2009 00:19:43 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	先说下好处：文本页面(htm/css/js等)启用压缩后，一般可以压缩70%左右。即50K的文件，实际只需传输15K到客户端，由客户端解压显示。<br/>另外，实践证明，启用Gzip压缩后，不会对搜索引擎收录有影响。<br/><br/>在Apache1.3时代，有一个mod_gzip的模块，但Apache2.x系列已经内置了Deflate模块，因此，只需要安装Deflate模块即可。<br/>一般默认没有装Deflate，最直接的方法就是重装Apache，在原来的配置文件后加上 --enable-deflate --enable-headers 。<br/>如果不想重装，就单独编译，mod_deflate.c在源文件目录的modules/filters下，mod_hearders.c则在modules/metadata目录下。如果用apxs -i -a -c的方法不行，请参考下面的办法，以安装mod_headers为例。<br/><br/>cd modules/metadata/<br/>apxs -i -a -c mod_headers.c <br/><br/>Warning!&nbsp;&nbsp;dlname not found in /usr/local/apache2.2.0/modules/mod_headers.la.<br/>Assuming installing a .so rather than a libtool archive.<br/>chmod 755 /usr/local/apache2.2.0/modules/mod_headers.so<br/>chmod: 无法访问‘/usr/local/apache2.2.0/modules/mod_headers.so’: 没有那个文件或目录<br/>apxs:Error: Command failed with rc=65536<br/><br/><br/>参照<a href="http://www.9enjoy.com/post/215/" target="_blank">http://www.9enjoy.com/post/215/</a>的说明，<br/><br/>gcc -shared -o mod_headers.so mod_headers.o<br/>cp mod_headers.so /usr/local/apache2.2.0/modules<br/>/usr/local/apache2.2.0/bin/apxs -i -a -c mod_headers.c <br/><br/>Warning!&nbsp;&nbsp;dlname not found in /usr/local/apache2.2.0/modules/mod_headers.la.<br/>Assuming installing a .so rather than a libtool archive.<br/>chmod 755 /usr/local/apache2.2.0/modules/mod_headers.so<br/>[activating module `headers&#039; in /usr/local/apache2.2.0/conf/httpd.conf]<br/><br/>安装成功了。<br/><br/>另网上有一种方法，我还没试过：<br/>编辑apache2安装目录/bin/apr-config(我的机子看了下应该是apr-1-config)文件修改其中的 LDFLAGS 值为 &quot;-lz&quot;，然后再重新编译。<br/><br/>装完后，其在conf/httpd.conf中加了如下两句：<br/>LoadModule deflate_module&nbsp;&nbsp;&nbsp;&nbsp; modules/mod_deflate.so<br/>LoadModule headers_module&nbsp;&nbsp;&nbsp;&nbsp; modules/mod_headers.so<br/><br/>其实安装deflate时mod_headers并不是必须，那为什么要安装呢？主要是其官方配置文件中使用了header模块来确保不会发送错误的内容。<br/><br/>&lt;Location /&gt;<br/><br/># 插入过滤器<br/>SetOutputFilter DEFLATE<br/><br/># Netscape 4.x 有一些问题...<br/>BrowserMatch ^Mozilla/4 gzip-only-text/html<br/><br/># Netscape 4.06-4.08 有更多的问题<br/>BrowserMatch ^Mozilla/4&#92;.0[678] no-gzip<br/><br/># MSIE 会伪装成 Netscape ，但是事实上它没有问题<br/>BrowserMatch &#92;bMSIE !no-gzip !gzip-only-text/html<br/># 不压缩图片<br/>SetEnvIfNoCase Request_URI &#92;.(?:gif&#124;jpe?g&#124;png)$ no-gzip dont-vary<br/><br/># 确保代理不会发送错误的内容<br/>Header append Vary User-Agent env=!dont-vary<br/><br/>&lt;/Location&gt; <br/><br/>另有一种简单的设置：<br/>AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php<br/>AddOutputFilter DEFLATE css js<br/>很好理解，可以放在Directory,Virtualhost,Location任意地方。<br/><br/><br/>怎么看是否生效了呢？来记录下日志：<br/><br/>#声明输入流的byte数量 <br/>DeflateFilterNote Input instream <br/>#声明输出流的byte数量 <br/>DeflateFilterNote Output outstream <br/>#声明压缩的百分比 <br/>DeflateFilterNote Ratio ratio <br/>#声明日志类型 <br/>LogFormat &#039;&quot;%r&quot; %&#123;outstream&#125;n/%&#123;instream&#125;n (%&#123;ratio&#125;n%%)&#039; deflate <br/>CustomLog logs/deflate_log deflate<br/><br/>大部分CSS,htm页面都可以压缩到30%，即文章开头我提到的能压缩70%。<br/><br/>Tags - <a href="http://www.dzhope.com/tags/gzip/" rel="tag">gzip</a> , <a href="http://www.dzhope.com/tags/apache/" rel="tag">apache</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] Apache2下的网站如何启用Gzip(Deflate)压缩 ]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>