当前位置:编程学习 > html/css >>

你的网站开启GZIP了么?

 

  写在文章前面,好多新站长,对于加快网站访问速度得认识只存在于服务器和模板选择上面,其实Gzip网页压缩可以大幅度提升网站访问速度,对于网站在国外的站来说,这是必不可少的一步,提升网页打开速度非常明显,现在我们就系统的来认识一下这个Gzip的庐山真面目。

  一、何为GZIP

  GZIP概念

  GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNⅨ系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

  HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容可压缩到原大小的40%.这样传输就快了,效果就是你点击网址后会很快的显示出来.当然这也会增加服务器的负载. 一般服务器中都安装有这个功能模块的.

  二、开启GZIP有什么好处?

  Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度。 gzip可以极大的加速网站.有时压缩比率高到80%,最少都有40%以上。

  三、如何开启Gzip压缩。

  1. IIS篇:

  首先打开IIS,在网站上面点右键选择服务,如图

  

\

 

  勾选HTTP压缩里的2个选项,临时目录可以用默认的C盘目录,如果C盘空间吃紧,也可以自己创建。这里需要注意,这个目录需要给予用户“IUSR_机器名”写入权限,否则不能正常开启Gzip。同时,如果你的空间不是很充裕,那么可以限制一下目录容量大小。否则流量大的站,这里的临时文件会大的吓人。

  第二步,右键点击IIS的WEB服务扩展

  

\

 

  如图所示,扩展名任意,文件位置选择 c:windowssystem32inetsrvgzip.dll,确定并勾选设置扩展状态为允许

  到这里,部分站长的网站也就开起GZIP了,不过有部分的仍需要手动修改配置,那就继续往下看

  第三步,打开 c:windowssystem32inetsrv文件夹,查找MetaBase.xml, 先复制备份一份,用记事本打开文件

  搜索Location ="/LM/W3SVC/Filters/Compression/gzip"

  下面会有三个相同名字的段,分别是deflate,gzip,Parameters

  ..

  ..

  ..

  这里我们只需要修改前2部分即可,这里要注意 MetaBase.xml 是否有写入权限,否则无法保存:

  HcCompressionDll="%windir%system32inetsrvgzip.dll"

  HcCreateFlags="0"

  HcDoDynamicCompression="TRUE"

  HcDoOnDemandCompression="TRUE"

  HcDoStaticCompression="FALSE"

  HcDynamicCompressionLevel="0"

  HcFileExtensions="htm

  html

  txt"

  HcOnDemandCompLevel="10"

  HcPriority="1"

  HcscriptFileExtensions="asp

  dll

  exe"

  >

  HcCompressionDll="%windir%system32inetsrvgzip.dll"

  HcCreateFlags="1"

  HcDoDynamicCompression="TRUE"

  HcDoOnDemandCompression="TRUE"

  HcDoStaticCompression="TRUE"

  HcDynamicCompressionLevel="0"

  HcFileExtensions="htm

  html

  txt"

  HcOnDemandCompLevel="10"

  HcPriority="1"

  HcscriptFileExtensions="asp

  dll

  exe"

  >

  替换成

  HcCompressionDll="%windir%system32inetsrvgzip.dll"

  HcCreateFlags="1"

  HcDoDynamicCompression="TRUE"

  HcDoOnDemandCompression="TRUE"

  HcDoStaticCompression="TRUE"

  HcDynamicCompressionLevel="10"

  HcFileExtensions="html

  css

  js

  htm

  xml

  txt"

  HcOnDemandCompLevel="10"

  HcPriority="1"

  HcscriptFileExtensions="php

  dll"

  >

  HcCompressionDll="%windir%system32inetsrvgzip.dll"

  HcCreateFlags="2"

  HcDoDynamicCompression="TRUE"

  HcDoOnDemandCompression="TRUE"

  HcDoStaticCompression="TRUE"

  HcDynamicCompressionLevel="10"

  HcFileExtensions="html

  css

  js

  htm

  xml

  txt"

  HcOnDemandCompLevel="10"

  HcPriority="1"

  HcscriptFileExtensions="php

  dll"

  >

  替换好之后不要马上保存,打开服务,停止IIS,点保存,然后启动IIS、HTTL和www服务,即可

  VPS和服务器均可以按上述步骤开启Gzip,虚拟主机需要询问服务商。

  2. Apache启用篇

  首先查看apache是否加载了mod_deflate.so模块,如果没有需要安装加载。找到并下载和当前apache版本相同的源码文件,解压缩到/home目录下,在apache安装目录下执行:

  /usr/local/apache2/bin/apxs -i -c /home/httpd-2.0.63/modules/filters/mod_deflate.

  会自动在 httpd.conf添加

  LoadModule deflate_module modules/mod_deflate.so

  添加如下设置:

  #Insert filter

  SetOutputFilter DEFLATE

  # Netscape 4.x has some problems…

  BrowserMatch ^Mozilla/4 gzip-only-text/html

  # Netscape 4.06-4.08 have some more problems

  BrowserMatch ^Mozilla/4.0[678] no-gzip

  # MSIE masquerades as Netscape, but it is fine

  # BrowserMatch bMSIE !no-gzip !gzip-only-text/html

  # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.59

  # the above regex won’t work. You can use the following

  # workaround to get the desired effect:

  # BrowserMatch bMSIE !no-gzip !gzip-only-text/html force-gzip

  BrowserMatch bMSIE !no-gzip !gzip-only-text/html

  # Don’t compress images and other

  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|doc)$ no-gzip dont-vary

  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css

  AddOutputFilterByType DEFLATE application/x-javascript

  # Make sure proxies don’t deliver the wrong content

  Header append Vary User-Agent env=!dont-vary

  #DeflateFilterNote ratio ratio_info

  #LogFormat '"%v %h %l %u %t “%r" %>s %b "%{Referer}i" "%{User-Agent}i"" (%{ratio}n)' deflate

  #CustomLog logs/deflate_log deflate

  停止apache服务./apachectl stop,报错如下:

  Cannot load /usr/local/apache2/modules/mod_deflate.so into server: /usr/local/apache2/modules/mod_deflate.so: undefined symbol: deflate

  解决如下:

  vi /usr/local/apache2/bin/apr-config

  修改LDFLAGS=" " 为 LDFLAGS="-lz"

  停止启动服务:仍提示:

  DeflateFilterNote not allowed here

  CustomLog not allowed here

  注释掉后,正常。

  以上就是GZIP开启的一般步骤,测试可以去站长工具站测试即可,爱站和站长都有。Gzip真的必须有.

  第四,对于网络上流传的关于一些开启Gzip之后易做图抓取出现问题,基本上都是针对于动态站点,静态站点Gzip绝对是安全的。希望动态站点不要轻易开启,好了,开始你的Gzip之路吧

  耀扬网络www.c9dy.com

补充:web前端 , HTML/CSS  ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,