最近一直有博友跟我说我的博客速度很杯具。其实这我也知道。谁让咱是国外的空间呢,国内实在是太不给力了。。。这个我无法改变,所以只好从其他方面下手来提高博客的访问速度了。
百度一下,很快就找到了这方面的信息,其中一个便是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%。压缩率实在是高啊,哈哈 文章源自两天的博客-https://2days.org/2005.html
下面就是我开启Gzip的检测结果:
检测网站是否开启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了,加速效果非常明显。
文章源自两天的博客-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
- <?php
- phpinfo();
- ?>
将phpinfo.php文件上传到网站根目录,并访问phpinfo.php。
查看_SERVER["HTTP_ACCEPT_ENCODING"]这项是否有Gzip、deflate或zlib,或是用Ctrl+F 查找这三个关键词,如有即支持,一般都会至少支持一个。
1、如果空间支持Gzip压缩文件:
GZippy插件法:直接利用GZippy插件能自动为WordPress开启GZip压缩功能的插件。方法简单:下载GZippy-安装GZippy插件-激活。
如果你不喜欢用插件,可以在wordpress根目录的.htaccess增加以下代码:
- php_value output_handler ob_gzhandler
2、如果空间支持Zlib压缩文件,可用php.ini方法。这个方法比较简单,压缩率也较高,可达75%左右。
新建一个名为 php.ini 的文件,添加以下代码,保存后上传至网站根目录即可。
- output_buffering = Off
- output_handler =
- zlib.output_compression = On
3、如果空间支持deflate模块压缩文件,可用.htaccess方法。
只需要在.htaccess 文件中加入以下代码可以压缩 HTML, PHP, JS, CSS, XML 后缀的文件。
- < ifmodule mod_deflate.c >
- AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript
- < /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表示需要的压缩率,数字越小压缩率越低;
- public sealed class CompressionModule : IHttpModule
- {
- void IHttpModule.Dispose()
- {
- // Nothing to dispose;
- }
- void IHttpModule.Init(HttpApplication context)
- {
- if (BlogSettings.Instance.EnableHttpCompression)
- {
- context.PreRequestHandlerExecute += new EventHandler(context_PostReleaseRequestState);
- }
- }
- private const string GZIP = "gzip";
- private const string DEFLATE = "deflate";
- void context_PostReleaseRequestState(object sender, EventArgs e)
- {
- HttpApplication app = (HttpApplication)sender;
- if (app.Context.CurrentHandler is System.Web.UI.Page && app.Request["HTTP_X_MICROSOFTAJAX"] == null)
- {
- if (IsEncodingAccepted(DEFLATE))
- {
- app.Response.Filter = new DeflateStream(app.Response.Filter, CompressionMode.Compress);
- SetEncoding(DEFLATE);
- }
- else if (IsEncodingAccepted(GZIP))
- {
- app.Response.Filter = new GZipStream(app.Response.Filter, CompressionMode.Compress);
- SetEncoding(GZIP);
- }
- }
- else if (app.Context.Request.Path.Contains("WebResource.axd"))
- {
- app.Context.Response.Cache.SetExpires(DateTime.Now.AddDays(30));//是.NET自己的文件,这里只是加缓存时间
- }
- }
- private static bool IsEncodingAccepted(string encoding)
- {
- HttpContext context = HttpContext.Current;
- return context.Request.Headers["Accept-encoding"] != null && context.Request.Headers["Accept-encoding"].Contains(encoding);
- }
- private static void SetEncoding(string encoding)
- {
- HttpContext.Current.Response.AppendHeader("Content-encoding", encoding);
- }
- }
编辑完毕后保存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的代码粘贴如下
本站文章大部分始于原创,用于个人学习记录,可能对您有所帮助,仅供参考!
山东省青岛市 16F
山东省滨州市 B1
@ 海景婚纱摄影
福建省莆田市 15F
压缩是一门艺术,哈哈。
山东省滨州市 B1
@ new air max shoes
广东省广州市花都区 14F
我是直接用WP插件~~
山东省滨州市 B1
@ Junan @Junan, 我的直接在主机后台打开就可以了,呵呵,方便~~
北京市 13F
这个很有用,MARK下 哈哈
山东省滨州市 B1
@ 朽木 @朽木, 嗯,有点用处的。压缩比很大的。
安徽省合肥市 12F
步骤还蛮复杂的啊,不过很有用呢
山东省滨州市 B1
@ AirMax @AirMax, 呵呵,基本还有点用处。
湖北省随州市 11F
恩 我又来来了勒 呵呵
山东省滨州市 B1
@ 油罐车 @油罐车, 谢谢啊~~
甘肃省兰州市 10F
没发现太大的改变- –
你这母鸡是哪里的?
山东省滨州市 B1
@ skidu @skidu, 感觉不是很大,啥母鸡??
甘肃省兰州市 B2
@ 两天 @两天, 这次打开。。有缓存的情况下。。都超过15秒了。。不知道是我这里卡还是你的空间的原因。。我感觉还是你网站上加载的“不相干内容”太多的原因。。。
母机- –
甘肃省兰州市 B2
@ 两天 @两天, 大致看了下,一个天气预报。。八九个广告(汗。。)。。一个clicki。。一个微博调用。。再加上一些插件什么的以及诸多js。。 – –
江西省赣州市 9F
这个必须的,我早搞了。把js css也压缩了。
山东省滨州市 B1
@ 朵未 @朵未, 之前我也没想到,最近才想起来~~
江西省赣州市 B2
@ 两天 @两天, Gzip压缩提速效果明显啊。
重庆市 8F
我好久没搞博客了 最近似乎对网路没什么兴趣了
山东省滨州市 B1
@ 扯远了 @扯远了, 嗯,慢慢的习惯于平淡。。。
浙江省丽水市 7F
丫丫。。。看样子很不错哦、、、
山东省滨州市 B1
@ lulu @lulu, 确实不错,呵呵
辽宁省大连市 6F
有用,我回家看看去。
我的必须要压缩一下了。
山东省滨州市 B1
@ 雨阳美眉 @雨阳美眉, 嗯啊,可以提高浏览速度的啊。
广东省东莞市 5F
我开启了。
山东省滨州市 B1
@ 竹下无为梦 @竹下无为梦, 可以小小的提升一下访问速度。
湖北省宜昌市 4F
呵呵,挺实用,效果不错,顶一个!
山东省滨州市 B1
@ 七七 @七七, 谢谢啊~~
重庆市 3F
这个很有用,基本上可以压缩百分之七十
山东省滨州市 B1
@ 学夫子 @学夫子, 嗯,压缩比例很大。
广东省梅州市 2F
我用代码开启滴。但感觉不了有多快。
山东省滨州市 B1
@ 爱惜 @爱惜, 微小的差距而已~~
吉林省长春市 1F
我直接拿插件开启的~
山东省滨州市 B1
@ 小星 @小星, 呵呵,俺是用的cPanel面板直接开启的~~