开启Gzip压缩为博客加速

两天 学习资料 资源分享3531K1字数 4388阅读14分37秒阅读模式

最近一直有博友跟我说我的博客速度很杯具。其实这我也知道。谁让咱是国外的空间呢,国内实在是太不给力了。。。这个我无法改变,所以只好从其他方面下手来提高博客的访问速度了。

百度一下,很快就找到了这方面的信息,其中一个便是GZip压缩。GZIP压缩其实就是将网页内容压缩,减少HTML代码网络传输的代价,来提高Web性能。它最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。Linux中常用到后缀为。gz的文件,它们就是GZIP格式的。现今已经成为Internet上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。网站开启Gzip压缩以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度。一般对纯文本内容可压缩到原大小的40%。当然这也会增加服务器的负载。文章源自两天的博客-https://2days.org/2005.html

于是,我便开启了Gzip, 我的首页大约有80K,经压缩后变为20K,压缩率为:74.43%。压缩率实在是高啊,哈哈 :-D文章源自两天的博客-https://2days.org/2005.html

下面就是我开启Gzip的检测结果:
2005-1

检测网站是否开启GZIP压缩的方法:http://tool.chinaz.com/Gzips/文章源自两天的博客-https://2days.org/2005.html

综合百度谷歌的搜索结果,说明一下开启GZIP压缩的方法:文章源自两天的博客-https://2days.org/2005.html

一、开启cPanel控制面板中的“优化网站”功能:文章源自两天的博客-https://2days.org/2005.html

登陆cPanel面板,点击“软件”中的“优化网站”,然后选中“压缩所有内容”,最后点“更新设置”即可完成Gzip的开启。这个对于CSS,JS,以及HTML文件更具有极高的压缩率,尤其当博客使用了比较多的JS特效,开启GZip后压缩比高达75%。如果你的首页有100KB的话,开启GZip后就变成25KB了,加速效果非常明显。
2005-2文章源自两天的博客-https://2days.org/2005.html

这个方法比较简单,如果在cPanel面板中找不到“优化网站”,那么你可以尝试下面的方法。文章源自两天的博客-https://2days.org/2005.html

二、利用代码和插件实现加速:文章源自两天的博客-https://2days.org/2005.html

首先检测你的空间是否支持gzip或deflate来压缩文件。文章源自两天的博客-https://2days.org/2005.html

检测方法:新建一个phpinfo.php文件,将以下代码复制进去:文章源自两天的博客-https://2days.org/2005.html

  1. <?php  
  2. phpinfo();  
  3. ?>  

将phpinfo.php文件上传到网站根目录,并访问phpinfo.php。

查看_SERVER["HTTP_ACCEPT_ENCODING"]这项是否有Gzipdeflatezlib,或是用Ctrl+F 查找这三个关键词,如有即支持,一般都会至少支持一个。

1、如果空间支持Gzip压缩文件:

GZippy插件法:直接利用GZippy插件能自动为WordPress开启GZip压缩功能的插件。方法简单:下载GZippy-安装GZippy插件-激活。
如果你不喜欢用插件,可以在wordpress根目录的.htaccess增加以下代码:

  1. php_value output_handler ob_gzhandler  

2、如果空间支持Zlib压缩文件,可用php.ini方法。这个方法比较简单,压缩率也较高,可达75%左右。

新建一个名为 php.ini 的文件,添加以下代码,保存后上传至网站根目录即可。

  1. output_buffering = Off  
  2. output_handler =  
  3. zlib.output_compression = On  

3、如果空间支持deflate模块压缩文件,可用.htaccess方法。
只需要在.htaccess 文件中加入以下代码可以压缩 HTML, PHP, JS, CSS, XML 后缀的文件。

  1. < ifmodule mod_deflate.c >  
  2. AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript  
  3. < /ifmodule >  

三、IIS6.0启用GZIP压缩的方法

  • 打开Internet信息服务(IIS)管理器,右击"网站"->"属性",选择"服务"。在"HTTP压缩"框中选中"压缩应用程序文件"和"压缩静态文件",按需要设置"临时目录"和"临时目录的最大限制";
  • 在Internet 信息服务(IIS)管理器,右击"Web服务扩展"->"增加一个新的Web服务扩展...",在"新建Web服务扩展"框中输入扩展名"HTTP Compression",添加"要求的文件"为C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系统目录根据您的安装可能有所不同,选中"设置扩展状态为允许";
  • 使用文本编辑器打开C:\Windows\System32 \inetsrv\MetaBase.xml(建议先备份),找到Location ="/LM/W3SVC/Filters/Compression/gzip",如果需要压缩动态文件,则将 HcDoDynamicCompression设置为"TRUE",并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx;如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为 "TRUE",并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xml、css等; HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数字越小压缩率越低;
  • 编辑完毕后保存MetaBase.xml文件;如果文件无法保存,则可能IIS正在使用该文件。打开"开始"->"管理工具"->"服务",停止"IIS Admin Service"后,即可保存;
    最后,重新启动IIS。

    这里要提到的是:IIS6.0的压缩,会对HTML、CSS等静态文件进行优化。IIS6.0会将这些压缩好的文件放在一个缓存目录中,如果没有修改,IIS6.0将直接返回缓存目录中的文件。而不是对这些文件每次都压缩。

    四、通过HttpModules启用GZIP压缩(.NET 2.0)

    主要是.NET 2.0有两个类:GZipStream DeflateStream。Module的代码粘贴如下

    1. public sealed class CompressionModule : IHttpModule    
    2.   {    
    3.     void IHttpModule.Dispose()    
    4.     {    
    5.       // Nothing to dispose;     
    6.     }    
    7.     void IHttpModule.Init(HttpApplication context)    
    8.     {    
    9.       if (BlogSettings.Instance.EnableHttpCompression)    
    10.       {    
    11.         context.PreRequestHandlerExecute += new EventHandler(context_PostReleaseRequestState);    
    12.       }    
    13.     }    
    14.     private const string GZIP = "gzip";    
    15.     private const string DEFLATE = "deflate";    
    16.     void context_PostReleaseRequestState(object sender, EventArgs e)    
    17.     {    
    18.       HttpApplication app = (HttpApplication)sender;    
    19.       if (app.Context.CurrentHandler is System.Web.UI.Page && app.Request["HTTP_X_MICROSOFTAJAX"] == null)    
    20.       {    
    21.         if (IsEncodingAccepted(DEFLATE))    
    22.         {    
    23.           app.Response.Filter = new DeflateStream(app.Response.Filter, CompressionMode.Compress);    
    24.           SetEncoding(DEFLATE);    
    25.         }    
    26.         else if (IsEncodingAccepted(GZIP))    
    27.         {    
    28.           app.Response.Filter = new GZipStream(app.Response.Filter, CompressionMode.Compress);    
    29.           SetEncoding(GZIP);    
    30.         }    
    31.       }    
    32.             else if (app.Context.Request.Path.Contains("WebResource.axd"))    
    33.             {    
    34.                 app.Context.Response.Cache.SetExpires(DateTime.Now.AddDays(30));//是.NET自己的文件,这里只是加缓存时间    
    35.             }    
    36.     }    
    37.     private static bool IsEncodingAccepted(string encoding)    
    38.     {    
    39.       HttpContext context = HttpContext.Current;    
    40.       return context.Request.Headers["Accept-encoding"] != null && context.Request.Headers["Accept-encoding"].Contains(encoding);    
    41.     }       
    42.     private static void SetEncoding(string encoding)    
    43.     {    
    44.       HttpContext.Current.Response.AppendHeader("Content-encoding", encoding);    
    45.     }    
    46.   }    

本站文章大部分始于原创,用于个人学习记录,可能对您有所帮助,仅供参考!

weinxin
312379857
←QQ扫一扫添加QQ好友
版权声明:本站原创文章转载请注明文章出处及链接,谢谢合作!
广告也精彩
 最后更新:2016-1-12
  • GZIP
  • 加速
  • 压缩
  • GZippy
  • IIS6.0
评论  35  访客  19  作者  16
    • 海景婚纱摄影
      海景婚纱摄影 5
      • new air max shoes
        new air max shoes 0

        压缩是一门艺术,哈哈。

        • Junan
          Junan 6

          我是直接用WP插件~~

            • 两天
              两天

              @ Junan @Junan, 我的直接在主机后台打开就可以了,呵呵,方便~~

            • 朽木
              朽木 0

              这个很有用,MARK下 哈哈

              • AirMax
                AirMax 1

                步骤还蛮复杂的啊,不过很有用呢

                • 油罐车
                  油罐车 1

                  恩 我又来来了勒 呵呵

                  • skidu
                    skidu 5

                    没发现太大的改变- –
                    你这母鸡是哪里的? :evil:

                      • 两天
                        两天

                        @ skidu @skidu, 感觉不是很大,啥母鸡?? :idea:

                          • skidu
                            skidu 5

                            @ 两天 @两天, 这次打开。。有缓存的情况下。。都超过15秒了。。不知道是我这里卡还是你的空间的原因。。我感觉还是你网站上加载的“不相干内容”太多的原因。。。
                            母机- –

                            • skidu
                              skidu 5

                              @ 两天 @两天, 大致看了下,一个天气预报。。八九个广告(汗。。)。。一个clicki。。一个微博调用。。再加上一些插件什么的以及诸多js。。 – –

                          • 朵未
                            朵未 6

                            这个必须的,我早搞了。把js css也压缩了。

                            • 扯远了
                              扯远了 5

                              我好久没搞博客了 最近似乎对网路没什么兴趣了

                              • lulu
                                lulu 4

                                丫丫。。。看样子很不错哦、、、

                                • 雨阳美眉
                                  雨阳美眉 4

                                  有用,我回家看看去。
                                  我的必须要压缩一下了。

                                  • 竹下无为梦
                                    竹下无为梦 4

                                    我开启了。

                                    • 七七
                                      七七 4

                                      呵呵,挺实用,效果不错,顶一个!

                                      • 学夫子
                                        学夫子 4

                                        这个很有用,基本上可以压缩百分之七十

                                        • 爱惜
                                          爱惜 3

                                          我用代码开启滴。但感觉不了有多快。

                                          • 小星
                                            小星 3

                                            我直接拿插件开启的~

                                              • 两天
                                                两天

                                                @ 小星 @小星, 呵呵,俺是用的cPanel面板直接开启的~~

                                            匿名

                                            发表评论

                                            匿名网友
                                            :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
                                            确定

                                            拖动滑块以完成验证