全球中文玩家俱乐部 Chinese players club of the Global .

侠外游戏论坛

 找回密码
 立即注册
快捷导航
搜索
视听
视听
图片
图片
段子
段子
小说
小说
查看: 1383|回复: 1
打印 上一主题 下一主题
收起左侧

[闲聊技术] IIS开启GZIP压缩效率对比及部署方法

[复制链接]
ミ蒙面侠客ミ
跳转到指定楼层
俺是撸主
ミ蒙面侠客ミ  发表于 2014-11-13 02:09:43 |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多侠客,享用更多功能,让你轻松玩转侠外论坛。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

HTTP压缩

HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如GZIP等压缩HTML、JavaScript或CSS文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点点服务器的负担。GZIP是比较常见的一种HTTP压缩算法。

压缩测试

在部署的IIS 6.0上配置了GZIP压缩,详细的测试结果如下。

未开启GZIP压缩前,访问网站首页进行抓包分析。

开启GZIP后,清空本地IE缓存,再次访问抓包分析。

开启前后,页面大小减小了89213bytes,压缩掉原始大小的87%。

当对CSS、JS等文件都开启GZIP压缩后,原21100bytes的文件,压缩后如图所示,压缩比为80%。

http://www.port80software.com/tools/compresscheck.asp上测试结果如下。

部署方法

1. 打开Internet信息服务(IIS)管理器,右击“网站”-》“属性”,选择“服务”。在“HTTP压缩”框中选中“压缩应用程序文件”和“压缩静态文件”,按需要设置“临时目录”和“临时目录的最大限制”;

2. 在Internet信息服务(IIS)管理器,右击“Web服务扩展”-》“增加一个新的Web服务扩展。。.”,在“新建Web服务扩展”框中输入扩展名“HTTP Compression”,添加“要求的文件”为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 Property

HcOnDemandCompLevel 属性说明:HcOnDemandCompLevel Metabase Property

说明: 这两个属性值一般推荐设置为9, 具有最佳性价比。

注意

1. 在编辑MetaBase.xml前需要停止IIS,可以使用 net stop iisadmin

2. 修改完成后开启iisadmin服务,并执行iisreset命令

可以在如下网址查询是否压缩:http://tool.chinaz.com/Gzips/

————————————————————————————————————————————

权限设置

在Windows上PHP默认的Session服务端文件存放在C:WINDOWSTemp下,为方便管理,我自己将存储路劲放在C:Temp目录下,由于我已经将硬盘所有根目录都只保留了Administrators组和System这两个完全控制权限,所以新加的Temp目录需要额外添加权限,才能让PHP正确运行。在继承原有两项权限之下,再添加以下两个用户的相关权限:

CREATOR OWNER
应用到:只有子文件夹和文件
权限:完全控制

Users
应用到:该文件夹,子文件夹及文件
权限:1.遍历文件夹/运行文件;2.创建文件/写入数据;3.创建文件夹/附加数据

设置目录权限后,重启IIS,PHP即可正确写入Session文件。

  开启IIS压缩时,系统默认的文件夹为C:WINDOWSIIS Temporary Compressed Files,我将此目录建立在D盘,同样也需要添加相应权限,否则将会导致网页图片不能正确显示,而且容易出现系统无法自动删除过期文件的现象。

在继承根目录的Administrators组和System这两个完全控制权限下,添加下列用户权限:

CREATOR OWNER
应用到:只有子文件夹和文件
权限:完全控制

IIS_WPG
权限:完全控制

IUSR_机器名


ミ蒙面侠客ミ
沙花按摩
ミ蒙面侠客ミ  发表于 2014-11-13 11:56:16

在昨天服务器还没重装之前,这个服务器已经开启了Gzip,去年配置的时候就很波折,因为配置文件在C盘,所以重装后Gzip就没了。

今天理论上第二次配置Gzip应该很轻松的,但是苦逼的人总能遇到意想不到的问题。

IIS6.0开启Gzip的整个流程第一步

首先右击“本机计算机”选择“允许直接编辑配置数据库”,这样做的目的是可以直接修改配置文件,或者在服务里停止掉“IIS Admin Service”服务(需谨慎),

第二步

右键“web服务扩展”——“添加一个新的web服务扩展”

第三步

按如图操作

第四步

右键“网站”点击“服务”选项卡,按如图操作,需要注意的临时目录可以随意指定,不过temp目录需要添加“users”用户组写入权限

第五步:修改MetaBase.xml在C盘依次找到:“ c:windowssystem32inetsrv”文件夹,找到 MetaBase.xml,先备份一份,再修改。
注:
1、有的服务器不需要修改此文件便可以使用
2、其实MetaBase.xml这个文件在同目录下有个文件夹“history”里面会自动备份该文件。
搜索 “Compression”

仔细核对下代码:
   

替换成:

   

特别提醒:一定要用txt记事本打开该文件!

注意两种压缩形式Gzip和deflate,上面其实就是将Gzip调整为首选压缩形式,另外加以修改压缩类型与压缩率。

特别需要注意的是:以上代码千万不能复制错误,不是错了会出问题,而是如果修改错了,IIS识别到了之后会自动还原成上一次正确的版本,你会发现自己改的又变回来了。(我在这上面被折腾了很久啊!)

第六步

最后将IIS重启一下即可

修改好了之后可以这里检测Gzip是否成功:http://seo.qiankoo.com/tools/gzip/

注意事项:

如果以上修改方面没有生效,那么就需要先将IIS服务在管理中先停止掉再修改文件。

这里需要注意的是,在“IIS Admin Service”服务停止后修改文件,如果文件修改有所错误,那么该服务将会启动不起来!这时就需要替换历史备份文件。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


发布主题 上个主题 下个主题 快速回复 收藏帖子 返回列表 搜索

联系我们|Archiver|手机版|小黑屋|侠外网 ( 豫ICP备13018943号-1 )

GMT+8, 2024-4-28 13:34 , Processed in 0.044847 second(s), 22 queries , Gzip On, Memcache On.

Copyright © 2001-2023 侠外游戏论坛 Powered by !Zucsud X3.5

Support By A mysterious team , A great team ! Email:

快速回复 返回顶部 返回列表