最近打开我的网站,发现速度越来越慢了,所以么,在站长工具查的时候,看到开启gzip可以让传输速度快等很多优点,而我采用的是zblog博客程序,所以就查了一下zblog网站开启设置gzip的方法。找到两篇文章,有所差别。我们看看吧。
我觉得zblog这种动态加静态的架构应该是适合启用gzip压缩动态文件的,毕竟动态文件也就首页tag页和留言本,所以这几个动态文件的gzip压缩应该是不至于拖累到服务器性能的,但是看了那篇文章又翻嘀咕。。。
站点启用CDN、反向代理、开启gzip压缩等服务会不会影响搜索引擎收录?Baiduspider对站点的抓取方式和普通用户访问一样,只要普通用户能访问到的内容,我们就能抓取到。不管是用什么技术,只要能保证用户能流畅的访问网站,对搜索引擎就没有影响。我们建议尽量选择有实力的服务商和成熟的技术,不成熟的技术容易导致访问不稳定,这就有可能影响搜索引擎的抓取了。GZIP并不影响百度与GG的抓取,也不影响SEO的,这点百度与GG的站长指南中已经有提到他们能抓取时能识别这些经过GZIP压缩的页面。并且本人也经过测试,确实不影响抓取与排名。说影响的都是人云亦云,只要是能提高用户体验的都会被认为为正常文件。zblog是asp程序的,所以我们主要看一下iis开启gzip压缩网页的方法就可以了。一.摘要本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小, 提高用户显示页面的速度.二.前言.本文的知识点是从互联网收集整理, 主要来源于中文wiki. 使用YSlow检测网站启用了哪些优化时, Gzip是十分关键的一项. 启动Gip压缩将立竿见影的减少页面的网络传输大小.三.HTTP压缩概述HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或 CSS文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点点服务器的负担。Gzip是比较常见的一种HTTP压缩算法。四.HTTP压缩工作原理Web服务器处理HTTP压缩的工作原理如下:1.Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩;在用户浏览器发送请求的HTTP头中, 带有"Accept-Encoding: gzip, deflate"参数则表明支持gzip和deflate两种压缩算法.2.如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;静态文件和动态文件后缀启动要所都需要在MetaBase.xml中设置.静态文件需要设置: HcFileExtensions Metabase Property (单击跳转到MSDN说明)动态文件需要设置: HcScriptFileExtensions Metabase Property (单击跳转到MSDN说明)3.如果请求文件是HTML、CSS等静态文件并且文件后缀启用了压缩,则Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;4.如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;5.如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;6.如果请求文件是ASPX等动态文件并且文件后缀启用了压缩,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。五. 在IIS中启用HTTP压缩IIS默认并不支持HTTP压缩,需要进行简单的配置1.打开Internet信息服务(IIS)管理器,右击"网站"->"属性",选择"服务"。在"HTTP压缩"框中选中"压缩应用程序文件"和"压缩静态文件",按需要设置"临时目录"和"临时目录的最大限制";2.提醒: 经试验此步骤在本人机器上没有作用, 可以忽略.在Internet信息服务(IIS)管理器,右击"Web服务扩展"->"增加一个新的Web服务扩展...",在"新建Web服务扩展"框中输入扩展名"HTTPCompression",添加"要求的文件"为C:WINDOWSsystem32inetsrvgzip.dll,其中Windows系统目录根据您的安装可能有所不同,选中"设置扩展状态为允许";3.使用文本编辑器打开C:WindowsSystem32inetsrvMetaBase.xml(建议先备份),找到Location ="/LM/W3SVC/Filters/Compression/gzip用于设置gzip压缩,找到Location ="/LM/W3SVC/Filters/Compression/deflate"用于设置deflate压缩.上面两个节点紧挨着.并且设置的属性相同.如果需要压缩动态文件,则将HcDoDynamicCompression设置为"TRUE",并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx;如果需要压缩静态文件,则将HcDoStaticCompression和 HcDoOnDemandCompression设置为"TRUE",并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如 xml、css等;HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数值在0-10, 默认为0.HcDynamicCompressionLevel属性说明:HcDynamicCompressionLevel Metabase PropertyHcOnDemandCompLevel 属性说明:HcOnDemandCompLevel Metabase Property说明: 这两个属性值一般推荐设置为9, 具有最佳性价比.但是在我的window server 2003上, 压缩率无论如何设置, jQuery和jQuery UI两个文件(58k/188k)压缩后的大小一直相同.(20k/45k).下面是我的实例:HcCompressionDll="%windir%system32inetsrvgzip.dll"HcCreateFlags="0"HcDoDynamicCompression="TRUE"HcDoOnDemandCompression="TRUE"HcDoStaticCompression="true"HcDynamicCompressionLevel="9"HcFileExtensions="htmhtmltxtjscssswfxml"HcOnDemandCompLevel="9"HcPriority="1"HcScriptFileExtensions="aspaspxdllexe">HcCompressionDll="%windir%system32inetsrvgzip.dll"HcCreateFlags="1"HcDoDynamicCompression="TRUE"HcDoOnDemandCompression="TRUE"HcDoStaticCompression="true"HcDynamicCompressionLevel="9"HcFileExtensions="htmhtmltxtjscssswfxml"HcOnDemandCompLevel="9"HcPriority="1"HcScriptFileExtensions="aspaspxdllexe">4.编辑完毕后保存MetaBase.xml文件;如果文件无法保存,则可能IIS正在使用该文件。打开"开始"->"管理工具"->"服务",停止"IIS Admin Service"后,即可保存;5.最后,重新启动IIS。可以到HTTP压缩测试网站验证结果.以jQuery为例, 核心类库和UI类库原始大小分别是57k和188k,压缩后分别是20k和45k:我们通过Http头中的: Content-Encoding:gzip 属性判断返回后的数据已经启用了gzip压缩:使用YSlow检测, 当只启动静态文件压缩时, Gzip压缩评级为B:当同时启动了动态文件压缩时, Gzip压缩评级为A:六.要点总结1. 在修改MetaBase.xml文件时, 要停止"IIS Admin Service"服务. 否则无法保存.2.静态压缩和动态压缩率最好设置为9.3.上文的步骤2, 即使不添加Web服务扩展效果也是相同的.4.压缩率设置对js文件不起作用, 压缩后大小总是相同的.5.图片文件即使启用了gzip压缩大小也没有变化.
Windows服务器设置方法:
下载地址:IIS6-SET-GZIP.rar
下载GZIP批处理文件,解压到任意位置,双击运行IIS6-SET-GZIP.cmd 即可迅速设置好GZIP。
特别提示若您的网站启用了CDN技术,则请勿开启gzip功能,否则会导致用户端访问为空白的情况,设置好后,可以通过 来测试压缩结果,如图:
GZIP可以压缩静态htm\html\css\js\asp\aspx\php 等格式文件,根据格式不同文件包含的内容不同,压缩率并不相同。
优点:可以加快网站访问速度,降低带宽的占用率。
缺点:会消耗更多的CPU资源压缩网页。
因此在您设置后如果您的CPU占用很高,请在IIS--网站--属性--服务里,取消HTTP压缩的勾,并重启IIS。(建议:VPS上超过10个站的不要开启该压缩功能)
压缩后的缓存文件会存放在C:\WINDOWS\IIS Temporary Compressed Files 因此建议在IIS--网站--属性--服务,设置一个大小,避免C盘被占满了。如图:
linux服务器设置方法:
Apache上利用Gzip压缩算法进行压缩的模块有两种:mod_gzip 和mod_deflate。要使用Gzip Web压缩,请首先确定你的服务器开启了对这两个组件之一的支持。虽然使用Gzip同时也需要客户端浏览器的支持,不过不用担心,目前大部分浏览器都已经 支持Gzip了,如IE、Mozilla Firefox、Opera、Chrome等。
通过查看HTTP头,我们可以快速判断使用的客户端浏览器是否支持接受gzip压缩。
若发送的HTTP头中出现以下信息,则表明你的浏览器支持接受相应的gzip压缩:
Accept-Encoding: gzip 支持mod_gzip
Accept-Encoding: deflate 支持mod_deflate
Accept-Encoding: gzip,deflate 同时支持mod_gzip 和mod_deflate
如果服务器开启了对Gzip组件的支持,那么我们就可以在http.conf或.htaccess里面进行定制,下面是一个.htaccess配置的简单实例:
# mod_gzip:
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
# mod_deflate:
<ifmodule mod_deflate.c>
DeflateCompressionLevel 6 #压缩率, 6是建议值.
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE image/svg+xml
</ifmodule>
里面的文件MIME类型可以根据自己情况添加,至于PDF 、图片、音乐文档之类的这些本身都已经高度压缩格式,重复压缩的作用不大,反而可能会因为增加CPU的处理时间及浏览器的渲染问题而降低性能。所以就没必要再通过Gzip压缩。
通过以上设置后再查看返回的HTTP头,出现以下信息则表明返回的数据已经过压缩。即网站程序所配置的Gzip压缩已生效。也可以通过 http://tool.chinaz.com/Gzips/ 这里查询gzip是否压缩。
好了,如果你用的是VPS或者服务器,建议你用第二篇文章的方法。这种方法比较简单、便捷,而且针对整个服务器上的网站来做的,所以很快速,一劳永逸。