<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OurApache &#187; mod_deflate</title>
	<atom:link href="http://ourapache.com/archives/tag/mod_deflate/feed" rel="self" type="application/rss+xml" />
	<link>http://ourapache.com</link>
	<description>我们致力于一个Apache知识的分享网站</description>
	<lastBuildDate>Tue, 13 Apr 2010 05:18:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Apache2运用mod_deflate提升网络页面浏览速度</title>
		<link>http://ourapache.com/archives/119</link>
		<comments>http://ourapache.com/archives/119#comments</comments>
		<pubDate>Tue, 10 Feb 2009 07:03:59 +0000</pubDate>
		<dc:creator>OurApache</dc:creator>
				<category><![CDATA[Apache高级应用]]></category>
		<category><![CDATA[mod_deflate]]></category>

		<guid isPermaLink="false">http://www.ourapache.com/?p=119</guid>
		<description><![CDATA[apache2已经用mod_deflate代替了mod_gzip
apache2已经包含了mod_deflate
以上的做法是压缩一般的网页html、xml、php、css、js等格式文件的输出，虽然会占用一点服务器的资源，不过这个可以减少带宽被占用的情况:)
这里：DeflateCompressionLevel 9是指压缩程度的等级，从1到9，9是最高级别的。这样做可以压缩到20%的大小，最少也有50%。至于jpg等已经压缩过的文件，就不需要再压缩了。]]></description>
			<content:encoded><![CDATA[<p>apache2已经用mod_deflate代替了mod_gzip</p>
<p>apache2已经包含了mod_deflate</p>
<p>打开模组</p>
<p>/usr/local/apache2/bin/apxs -i -c /yourpath/httpd-2.2.3/modules/filters/<a href="http://ourapache.com/archives/tag/mod_deflate" class="st_tag internal_tag" rel="tag" title="标签 mod_deflate 下的日志">mod_deflate</a>.c</p>
<p>httpd.conf添加</p>
<p>LoadModule deflate_module modules/mod_deflate.so</p>
<p>如果想只压缩html,text,xml 如果下面配置:</p>
<p>AddOutputFilterByType DEFLATE text/html text/plain text/xml</p>
<p>下面给出我的配置档:</p>
<p>LoadModule deflate_module modules/mod_deflate.so<br />
SetOutputFilter DEFLATE</p>
<p>BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html</p>
<p># Don’t compress images<br />
SetEnvIfNoCase Request_URI \<br />
\.(?:gif|jpe?g|png)$ no-gzip dont-vary<br />
SetEnvIfNoCase Request_URI \<br />
\.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary<br />
SetEnvIfNoCase Request_URI \<br />
\.pdf$ no-gzip dont-vary<br />
SetEnvIfNoCase Request_URI \<br />
\.(css|js)$ no-gzip dont-vary</p>
<p># Make sure proxies don’t deliver the wrong content<br />
Header append Vary User-Agent env=!dont-vary<br />
DeflateFilterNote Input input_info<br />
DeflateFilterNote Output output_info<br />
DeflateFilterNote Ratio ratio_info<br />
LogFormat ‘”%r” %{output_info}n/%{input_info}n (%{ratio_info}n%%)’ deflate<br />
CustomLog logs/deflate_log.log deflate</p>
<p>在apache的使用手册上还有这么一句,但是不知道为什么不能添加上去.</p>
<p># Make sure proxies don’t deliver the wrong content<br />
Header append Vary User-Agent env=!dont-vary</p>
<p>这个可以压缩 SVN 出来的文件。</p>
<p>———————————————</p>
<p>不能添加的原因是下面的模组没有打开：</p>
<p>LoadModule headers_module modules/mod_headers.so</p>
<p>=================</p>
<p>Apache deflate模块配置说明<br />
前几天一直在找apache2.0以dso方式编译后加载deflate模块的办法<br />
试了apxs -ica mod_deflate.c N次，始终是报</p>
<p>Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate</p>
<p>异常的痛苦，什么ldd mod_deflate.so后再export LIB_LIBRARY_PATH呀，都试了N次，google也go了N天。终于在google上go出来一篇文章，终于解决，方法如下：</p>
<p>vi /usr/local/apache2/bin/apr-config<br />
修改LDFLAGS=” ” 为 LDFLAGS=”-lz”<br />
然后再apxs -ica mod_deflate.c<br />
就OK了</p>
<p>另外在配置deflate规则时<br />
apache2.0推荐加上这句</p>
<p>Header append Vary User-Agent env=!dont-vary</p>
<p>以便确保不会输出在压缩过程中出现内容方面的error<br />
但一般情况下，在测试apache的语法过程中会现出<br />
Invalid command ‘Header’, perhaps mis-spelled or defined by a module not included in the server configuration<br />
解决办法就是加载一个headers模块就OK了</p>
<p>不过最好还是在编译apache模块时直接加上–enable-deflate –enable-headers就省事多了。</p>
<p>一、 需求<br />
压缩apache的输出内容，降低网站带宽<br />
二、 加载Apache的deflate模块<br />
1、 修改apr-config</p>
<p>vi /usr/local/apache2/bin/apr-config</p>
<p>修改LDFLAGS=” ” 为 LDFLAGS=”-lz”<br />
2、 到apache源安装目录下,例如</p>
<p>cd /root/httpd-2.0.55/modules/filters</p>
<p>3、加载mod_deflate模块</p>
<p>/usr/local/apache2/bin/apxs -i -a -c mod_deflate.c</p>
<p>如果没有安装headers模块，加载headers模块</p>
<p>cd /root/httpd-2.0.55/modules/metadata</p>
<p>加载mod_headers模块</p>
<p>/usr/local/apache2/bin/apxs -i -a –c mod_headers.c</p>
<p>三、配置Apache主配置文件<br />
1. 在httpd.conf主配置文件里添加如下行</p>
<p>#声明输入流的byte数量<br />
DeflateFilterNote Input instream<br />
#声明输出流的byte数量<br />
DeflateFilterNote Output outstream<br />
#声明压缩的百分比<br />
DeflateFilterNote Ratio ratio<br />
#声明日志类型<br />
LogFormat ‘”%r” %{outstream}n/%{instream}n (%{ratio}n%%)’ deflate<br />
CustomLog logs/deflate_log deflate</p>
<p>#指定压缩参数</p>
<p># Insert filter<br />
SetOutputFilter DEFLATE</p>
<p># Netscape 4.x has some problems…<br />
BrowserMatch ^Mozilla/4 gzip-only-text/html</p>
<p># Netscape 4.06-4.08 have some more problems<br />
BrowserMatch ^Mozilla/4\.0[678] no-gzip</p>
<p># MSIE masquerades as Netscape, but it is fine<br />
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html</p>
<p># NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48<br />
# the above regex won’t work. You can use the following<br />
# workaround to get the desired effect:<br />
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html</p>
<p># Don’t compress images<br />
SetEnvIfNoCase Request_URI \.(?:gif|jpg|cab|jpe?g|exe|bmp|mp3|rar|zip|swf|png)$ no-gzip dont-vary</p>
<p># Make sure proxies don’t deliver the wrong content<br />
Header append Vary User-Agent env=!dont-vary</p>
<p>二、日志输出格式如下</p>
<p>[root@trffic2 logs]# tail -f access_log<br />
“GET /apache_pb.gif HTTP/1.1″ -/- (-%)<br />
“GET /manual/ HTTP/1.1″ 2163/7434 (29%)<br />
“GET /manual/style/css/manual.css HTTP/1.1″ 3973/18335 (21%)<br />
“GET /manual/style/css/manual-loose-100pc.css HTTP/1.1″ 1006/2882 (34%)<br />
“GET /manual/style/css/manual-print.css HTTP/1.1″ 2994/13017 (23%)</p>
<p>_________________</p>
<p>apache1.3.x可以用mod_gzip进行优化网页浏览的速度，可以明显的感觉到速度的提升。在apache2中也尝试用mod_gzip，但是配置后确发现网页不能正确显示（空白页），所以改换mod_deflate。<br />
在Linux命令行下运行以下命令安装mod_deflate模块（斜体是apache2的目录）</p>
<p>/usr/local/apache2/bin/apxs -i -c /root/httpd-2.0.48/modules/filters/mod_deflate.c</p>
<p>编辑httpd.conf，加入以下内容：</p>
<p>LoadModule deflate_module modules/mod_deflate.so<br />
DeflateFilterNote ratio<br />
LogFormat ‘”%v %h %l %u %t “%r” %&amp;gt;s %b “%{Referer}i” “%{User-Agent}i”” (%{ratio}n)’ deflate</p>
<p># Insert filter<br />
SetOutputFilter DEFLATE</p>
<p># Netscape 4.x has some problems…<br />
BrowserMatch ^Mozilla/4 gzip-only-text/html</p>
<p># Netscape 4.06-4.08 have some more problems<br />
BrowserMatch ^Mozilla/4.0[678] no-gzip</p>
<p># MSIE masquerades as Netscape, but it is fine<br />
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html</p>
<p># Don’t compress images<br />
SetEnvIfNoCase Request_URI<br />
.(?:gif|jpe?g|png)$ no-gzip dont-vary</p>
<p># Make sure proxies don’t deliver the wrong content</p>
<p># Header命令不对？注释这一行<br />
# Header append Vary User-Agent env=!dont-vary</p>
<p>#查找Customlog 注释原来的的一行，改成<br />
CustomLog logs/deflate_log deflate</p>
<p>#查看logs目录下deflate_log文件，你可以看到许多这样的信息：<br />
“www.21php.com 220.163.107.88 &#8211; - [27/Mar/2004:01:03:55 -0800] “GET /ad/usrlogo/21PHPLOGO_88X31.gif HTTP/1.1″ 200 3656 “http://soft.ttee.com/vbb/” “Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)”” (-)<br />
“www.21php.com 211.144.88.138 &#8211; - [27/Mar/2004:01:03:57 -0800] “GET /tutorial/tutorial.php?tid=68 HTTP/1.1″ 200 5173 “http://www.21php.com/tutorial/tutorial.php?catalogid=12″ “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; .NET CLR 1.0.3705; Alexa Toolbar)”” (29)<br />
“www.21php.com 211.144.88.138 &#8211; - [27/Mar/2004:01:03:58 -0800] “GET /style.cssHTTP/1.1″ 304 &#8211; “http://www.21php.com/tutorial/tutorial.php?tid=68″ “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; .NET CLR 1.0.3705; Alexa Toolbar)”” (-)<br />
“www.21php.com 211.144.88.138 &#8211; - [27/Mar/2004:01:03:58 -0800] “GET /images/bar-4.gif HTTP/1.1″ 304 &#8211; “http://www.21php.com/tutorial/tutorial.php?tid=68″ “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; .NET CLR 1.0.3705; Alexa Toolbar)”” (-)<br />
“www.21php.com 211.144.88.138 &#8211; - [27/Mar/2004:01:03:58 -0800] “GET /images/logo.gif HTTP/1.1″ 304 &#8211; “http://www.21php.com/tutorial/tutorial.php?tid=68″ “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; .NET CLR 1.0.3705; Alexa Toolbar)”” (-)<br />
“www.21php.com 211.144.88.138 &#8211; - [27/Mar/2004:01:03:58 -0800] “GET /images/icon1.gif HTTP/1.1″ 304 &#8211; “http://www.21php.com/tutorial/tutorial.php?tid=68″ “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; .NET CLR 1.0.3705; Alexa Toolbar)”” (-)</p>
<p>Boban 写于2004年3月27日凌晨</p>
<p>附注：关于mod_deflate的详细内容，可以参考http://httpd.apache.org/docs-2.0/mod/mod_deflate.html<br />
__________________</p>
<p>如果apache是rpm安装的，那么默认就已经有mod_deflate这个模块了。<br />
更详细的可以看这里：http://sysoev.ru/mod_deflate/readme.html</p>
<p>因为mod_deflate相比较mod_gzip来说，有了更多的更新，所以我用上了它！<br />
注意：mod_gzip在apache1.x上用起来比较好，但是在apache2.x上用起来就不是很爽，老出错，也许是我的水平问题，没办法，所以改用：mod_deflate</p>
<p>我的apache：2.0.55<br />
配置如下：（修改：httpd.conf）</p>
<p>DeflateCompressionLevel 9<br />
AddOutputFilterByType DEFLATE text/html text/plain text/xml<br />
application/x-httpd-php<br />
AddOutputFilter DEFLATE js css</p>
<p>BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html<br />
Header append Vary User-Agent env=!dont-vary</p>
<p>DeflateFilterNote deflate_ratioLogFormat “%v %h %l %u %t \”%r\” %&amp;gt;s %b mod_deflate: %{deflate_ratio}n pct.” vhost_with_deflate_infoCustomLog logs/order.7180.com-access_log vhost_with_deflate_info</p>
<p>将以上的配置文字加入到：之间即可:)</p>
<p>以上的做法是压缩一般的网页html、xml、php、css、js等格式文件的输出，虽然会占用一点服务器的资源，不过这个可以减少带宽被占用的情况:)<br />
这里：DeflateCompressionLevel 9是指压缩程度的等级，从1到9，9是最高级别的。这样做可以压缩到20%的大小，最少也有50%。至于jpg等已经压缩过的文件，就不需要再压缩了。</p>
<h3  class="related_post_title">无相关文章，以下随机显示</h3><ul class="related_post"><li>2009年02月27号 -- <a href="http://ourapache.com/archives/206" title="http header详解">http header详解</a></li><li>2009年09月2号 -- <a href="http://ourapache.com/archives/294" title="HTTP Referer二三事">HTTP Referer二三事</a></li><li>2009年02月7号 -- <a href="http://ourapache.com/archives/94" title="使用gzip压缩来压缩网页之apache的相关配置">使用gzip压缩来压缩网页之apache的相关配置</a></li><li>2009年02月17号 -- <a href="http://ourapache.com/archives/142" title="在64位机器上关于Apache 2.2.3版的编译问题">在64位机器上关于Apache 2.2.3版的编译问题</a></li><li>2009年01月6号 -- <a href="http://ourapache.com/archives/32" title="htaccess学习笔记">htaccess学习笔记</a></li><li>2009年03月30号 -- <a href="http://ourapache.com/archives/229" title="对Apache中并发控制参数prefork理解和调优">对Apache中并发控制参数prefork理解和调优</a></li><li>2009年02月7号 -- <a href="http://ourapache.com/archives/87" title="Linux下查看apache连接数">Linux下查看apache连接数</a></li><li>2009年05月8号 -- <a href="http://ourapache.com/archives/245" title="用apache实现禁止IP段或者主机对某个目录的访问">用apache实现禁止IP段或者主机对某个目录的访问</a></li><li>2009年08月13号 -- <a href="http://ourapache.com/archives/273" title="Apache和IIS共享80端口的四个方法">Apache和IIS共享80端口的四个方法</a></li><li>2009年01月6号 -- <a href="http://ourapache.com/archives/27" title="php+mysql+apache编码深度解析">php+mysql+apache编码深度解析</a></li></ul>
	标签：<a href="http://ourapache.com/archives/category/advanced" title="Apache高级应用" rel="tag">Apache高级应用</a>, <a href="http://ourapache.com/archives/tag/mod_deflate" title="mod_deflate" rel="tag">mod_deflate</a><br />
]]></content:encoded>
			<wfw:commentRss>http://ourapache.com/archives/119/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

