云主机/服务器/VPS 一键开启IIS的GZIP方法及故障排查

原创 小菜  2015-05-07 20:43:08  阅读 3023 次 评论 0 条

  现代的浏览器IE6和Firefox都支持客户端Gzip,也就是说,在服务器上的网页,传输之前,先使用Gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示,这样虽然稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率Windows服务器设置方法:

  下载地址:http://yunpan.cn/cjSpS56R9MaDG (提取码:34ed)

  下载GZIP批处理文件,解压到任意位置,双击运行IIS6-SET-GZIP.cmd 即可迅速设置好GZIP。

  特别提示若您的网站启用了CDN技术,则请勿开启gzip功能,否则会导致用户端访问为空白的情况,设置好后,可以通过http://tool.chinaz.com/Gzips/ 来测试压缩结果,如图:

  云主机/服务器/VPS 一键开启IIS的GZIP方法及故障排查第1张-菜鸟分享

  GZIP可以压缩静态htm\html\css\js\asp\aspx\php 等格式文件,根据格式不同文件包含的内容不同,压缩率并不相同。

  优点:可以加快网站访问速度,降低带宽的占用率。

  缺点:会消耗更多的CPU资源压缩网页。

  因此在您设置后如果您的CPU占用很高,请在IIS--网站--属性--服务里,取消HTTP压缩的勾,并重启IIS。(建议:VPS上超过10个站的不要开启该压缩功能)

  云主机/服务器/VPS 一键开启IIS的GZIP方法及故障排查第2张-菜鸟分享

  压缩后的缓存文件会存放在C:\WINDOWS\IIS Temporary Compressed Files 因此建议在IIS--网站--属性--服务,设置一个大小,避免C盘被占满了。如图:

  云主机/服务器/VPS 一键开启IIS的GZIP方法及故障排查第3张-菜鸟分享

  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是否压缩。

  如果通过以上未能解决你的问题,开启不成功,可以参照php中启用gzip页面压缩输出的配置方法。

  有关在php中配置gzip压缩的要点:

  1、默认php是不开启zlib整站压缩输出的,而是通过对需要压缩输出的页面使用ob_gzhandler函数实现,两者只能二选一,否则会报错。

  2、zlib.output_compression默认值为Off,你可以将其设置为On,或者output buffer size(默认为4k)

  3、zlib.output_compression_level代表压缩比,默认推荐设置压缩比值为6,可选范围为1-9,-1代表关闭php zlib(gzip)压缩

本文地址:https://www.dii123.com/post/107.html
版权声明:本文为原创文章,版权归 小菜 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?