① 什么是缓存目录给予iusr用户组的写入权限
启用动态内容压缩
II7中自带了gzip功能,理论上应该比ii6配置起来应该简单一点,但是容易出的问题比较多。有的II7配置web服务器角色的时候可能没有安装启用动态内容压缩,所以这个钩子是灰色的,需要再次安装。
如图提示:“为安装动态内容压缩模块”
打开web服务器,右侧添加角色服务,
找到动态内容压缩并勾选,点击下一步,等待安装结束就可以了。
最后,在II7中,应用GZIP压缩到所有网站中
Gzip临时压卖悔缩目录给予写入权限
配置完之后需要给予压缩缓存目录的写入权限。地址可以看图一。
因为iis6的缓存目录的权限为IIS_WPG用户组、IIS用户写入权限
在IIS 7.0中:IUSR内建帐号替代了IUSR_MachineName帐号IIS_IUSRS内建组替代了IIS_WPG组
所以,需要缓存目录给予IUSR用户组的写入权限。
配置启用压缩的文件类型及其他选项
这就是网上能够搜索到最多的教程了,为了确保教程的完整性,我复制粘贴下。
IIS并不是对所有内容都启用了压缩,而是有选择的进行压缩。我们无法直接在IIS7管理器中配置这些压缩选项。我们首先需要在C:\Windows\System32\inetsrv\config文件夹下找到applicationhost.config文件,打开之后找到如下一节内容:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> <dynamicTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/x-javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </dynamicTypes> <staticTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </staticTypes> </httpCompression>
可以看到iis7的gzip压缩是基于文件的mimetype的,如html.css就统一归纳到“text/*”中
另外对于JS文件的压缩:
由于js文件通常稳定之后不会再被修改了,因中谨正此建议改成静态压缩——即把dynamicTypes这一节中的application/x-javascript挪到静态压缩节中。这样保证每次脚本都是被晌判压缩过返回的。
② 网页怎么压缩,大师们指点一下。
一.摘要
本文总结了如何为使用IIS托管的网站启用Gzip压缩, 从而减少网页网络传输大小, 提高用户显示页面的速度.
二.前言
本文的知识点是从互联网收集整理, 主要来源于中文wiki. 使用YSlow检测网站启用了哪些优化时, Gzip是十分关键的一项. 启动Gip压缩将立竿见影的减少页面的网络传输大小.
三.HTTP压缩概述
HTTP 压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或CSS文件。
压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。
当然,同时也会增加一点点服务器的负担。Gzip是比较常见的一种HTTP 压缩算法。
四.HTTP压缩工作原理
Web服务器处理HTTP压缩的工作原理如下:
1.Web
服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩;
在用户浏览器发送请求的HTTP头中, 带有"Accept-Encoding: gzip, deflate"参数则表明支持gzip和deflate两种压缩算法.
2.如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;静态文件和动态文件后缀启动要所都需要在MetaBase.xml中设置.
静态文件需要设置:
HcFileExtensions Metabase Property
(单击跳转到MSDN说明) 动态文件需要设置: HcScriptFileExtensions Metabase Property (单击跳转到MSDN说明)
3.如果请求文件是HTML、CSS等静态文件并且文件后缀启用了压缩,则Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
4.如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
5.如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
6.如果请求文件是ASPX等动态文件并且文件后缀启用了压缩,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。
五. 在IIS中启用HTTP压缩
IIS默认并不支持HTTP压缩,需要进行简单的配置
1.打开Internet信息服务(IIS)管理器,右击"网站"->"属性"选择"服务"。在"HTTP压缩"框中选中"压缩应用程序文件"和"压缩静态文件",按需要设置"临时目录"和"临时目录的最大限制";
2.提醒: 经试验此步骤在本人机器上没有作用, 可以忽略. 在 Internet信息服务(IIS)管理器,右击"Web服务扩展"->"增加一个新的Web服务扩展...",在"新建Web服务扩展"框中输入扩名"HTTP Compression",添加"要求的文件"为C:WINDOWSsystem32inetsrvgzip.dll,其中Windows系统目录根据您的安装可能有所不同,选中"设置扩展状态为允许";
3.使用文本编辑器打开C:.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 PropertyHcOnDemandCompLevel 属性说明:HcOnDemandCompLevel Metabase Property说明: 这两个属性值一般推荐设置为
9, 具有最佳性价比.但是在我的window server 2003上, 压缩率无论如何设置, jQuery和jQuery
UI两个文件(58k/188k)压缩后的大小一直相同.(20k/45k). 下面是我的实例: Xml代码
1.<IIsCompressionSchemeLocation="/LM/W3SVC/Filters/Compression/deflate"
2.HcCompressionDll="%windir%system32inetsrvgzip.dll"
3.HcCreateFlags="0"
4.HcDoDynamicCompression="TRUE"
5.HcDoOnDemandCompression="TRUE"
6.HcDoStaticCompression="true"
7.HcDynamicCompressionLevel="9"
8.HcFileExtensions="htm
9. html
10. txt
11. js
12. css
13. swf
14. xml"
15.
HcOnDemandCompLevel="9"
16. HcPriority="1"
17. HcScriptFileExtensions="asp
18. aspx
19. dll
20. exe"
21. >
22.</IIsCompressionScheme>
23.<IIsCompressionSchemeLocation="/LM/W3SVC/Filters/Compression/gzip"
24. HcCompressionDll="%windir%system32inetsrvgzip.dll"
25. HcCreateFlags="1"
26. HcDoDynamicCompression="TRUE"
27. HcDoOnDemandCompression="TRUE"
28. HcDoStaticCompression="true"
29. HcDynamicCompressionLevel="9"
30. HcFileExtensions="htm
31. html
32. txt
33. js
34. css
35. swf
36. xml"
37. HcOnDemandCompLevel="9"
38. HcPriority="1"
39.
HcScriptFileExtensions
="asp
40. aspx
41. dll
42. exe"
43. >
44.</IIsCompressionScheme>
.csharpcode, .csharpcode pre { font-size: small; color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre
{ margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd
{
color:
#0000ff;
}
.csharpcode
.str
{
color:
#006080;
}
.csharpcode
.op
{ color: #0000c0; } .csharpcode .preproc { color:
#cc6633; } .csharpcode .asp { background-color:
#ffff00;
}
.csharpcode
.html
{
color:
#800000;
}
.csharpcode
.attr
{
color:
#ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%;
margin: 0em; } .csharpcode .lnum { color: #606060; }
4.编辑完毕后保存MetaBase.xml文件;如果文件无法保存,则可能IIS正在使用该文件。打开"开始"->"管理工具"->"服务",停止"IIS Admin Service"后,即可保存
5.最后,重新启动IIS。可以到HTTP压缩测试网站验证结果.以jQuery为例, 核心类库和UI类库原始大小分别是57k和188k,压缩后分别是20k和45k:
我们通过Http头中的: Content-Encoding:gzip 属性判断返回后的数据已经启用了gzip压缩:
使用YSlow检测, 当只启动静态文件压缩时:
Gzip压缩评级为B:
当同时启动了动态文件压缩时, Gzip压缩评级为A:
③ 网站上线后怎么压缩网页
一.摘要
本文总结了如何为使用IIS托管的网站启用Gzip压缩,?从而减少网页网络传输大小,?提高用户显示页面的速度.
二.前言
本文的知识点是从互联网收集整理,?主要来源于中文wiki.?使用YSlow检测网站启用了哪些优化时,?Gzip是十分关键的一项.?启动Gip压缩将立竿见影的减少页面的网络传输大小.?
三.、JavaScript或CSS文件。
压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。
当然,同时也会增加一点点服务器的负担。Gzip是比较常见的一种、CSS等静态文件并且文件后缀启用了压缩,则Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
4.如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
5.如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
6.如果请求文件是ASPX等动态文件并且文件后缀启用了压缩,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。
五.?在IIS中启用???
10.??????????????????????txt?????
11.??????????????????????js?????
12.??????????????????????css?????
13.??????????????????????swf?????
14.??????????????????????xml"?????
15.????????
HcOnDemandCompLevel="9"
16.????HcPriority="1"
17.????HcScriptFileExtensions="asp???
18.?????????????aspx?????
19.?????????????dll?????
20.?????????????exe"?????
21.??>
22.</IIsCompressionScheme>
23.<IIsCompressionSchemeLocation="/LM/W3SVC/Filters/Compression/gzip"
24.????HcCompressionDll="%windir%system32inetsrvgzip.dll"
25.????HcCreateFlags="1"
26.????HcDoDynamicCompression="TRUE"
27.????HcDoOnDemandCompression="TRUE"
28.????HcDoStaticCompression="true"
29.????HcDynamicCompressionLevel="9"
30.????HcFileExtensions="htm???
31.??????????????????????html?????
32.??????????????????????txt?????
33.??????????????????????js?????
34.??????????????????????css?????
35.??????????????????????swf?????
36.??????????????????????xml"?????
37.????HcOnDemandCompLevel="9"
38.????HcPriority="1"
39.????????
HcScriptFileExtensions
="asp?????
40.?????????????aspx?????
41.?????????????dll?????
42.?????????????exe"???
43.??>
44.</IIsCompressionScheme>
.csharpcode,?.csharpcode?pre?{?font-size:?small;?color:?black;?
font-family:?consolas,?"Courier?New",?courier,?monospace;?
background-color:?ffffff;?/*white-space:?pre;*/?}?.csharpcode?pre?
{?margin:?0em;?}?.csharpcode?.rem?{?color:?008000;?}?.csharpcode?.kwrd?
{?
color:?
0000ff;?
}?
.csharpcode?
.str?
{?
color:?
006080;?
}?
.csharpcode?
.op?
{?color:?0000c0;?}?.csharpcode?.preproc?{?color:?
cc6633;?}?.csharpcode?.asp?{?background-color:?
ffff00;?
}?
.csharpcode?
.html?
{?
color:?
800000;?
}?
.csharpcode?
.attr?
{?
color:?
ff0000;?}?.csharpcode?.alt?{?background-color:?f4f4f4;?width:?100%;?
margin:?0em;?}?.csharpcode?.lnum?{?color:?606060;?}??
4.编辑完毕后保存MetaBase.xml文件;如果文件无法保存,则可能IIS正在使用该文件。打开"开始"->"管理工具"->"服务",停止"IIS?Admin?Service"后,即可保存
5.最后,重新启动IIS。可以到HTTP压缩测试网站验证结果.以jQuery为例,?核心类库和UI类库原始大小分别是57k和188k,压缩后分别是20k和45k:?
我们通过Http头中的:?Content-Encoding:gzip?属性判断返回后的数据已经启用了gzip压缩:????
使用YSlow检测,?当只启动静态文件压缩时:
Gzip压缩评级为B:?
当同时启动了动态文件压缩时,?Gzip压缩评级为A:??
④ win2008 iis php 如何开启压缩
因为在做一个项目,项目里面服务器主要提供数据,但是数据多了文件就大了,比较浪费流量和时间,我们便用Gzip来处理。我在本机上是apache,服务器上是IIS6.0,用的是php,那么我就在这里分享一下。
IIS 的 GZIP 压缩
1.首先备份 IIS 的配置文件, 复制C:.xml到另外的备份文件夹中. C:.xml是 IIS 的核心配置文件,该文件的完整性一但被破坏,IIS 将无法正常运行,严重到需要重新安装系统.
2. 在开始菜单中启动 Internet 信息服务(IIS)管理器,右键点击“网站”属性,打开“服务”选项卡,勾选“HTTP 压缩”的两个选项。“临时目录”和“临时目录最大容量”可根据需要自行设置。设置完成后点击确定。
3. 右键点击“网站”下方的 “Web服务扩展”,添加一个新的Web服务扩展,扩展名填写为“HTTP Compression”或其他,都可以。“要求的文件”添加:c:windowssystem32inetsrvgzip.dll ,并勾选“设置扩展状态为允许”,完成后点击确定。
4.下面的步骤有些复杂,如果没有确定的把握能理解,最好不要尝试,右键点击“Internet 信息服务的”“本地计算机”属性,勾选“允许直接编辑配置数据库”并确定。
5. 在开始菜单中运行 notepad C:.xml ,打开metabase.xml 文件,请在任何改动前再次确认该文件已经备份。
6. 用文本编辑器打开metabase.xml ,用查找功能找到“IIsCompressionScheme”,共有3处,都在一起,分别是deflate、gzip和 Parameters,deflate也是一种压缩格式,不过性能上不如gzip。需要修改的是deflate和gzip这两段,参数基本一样,都要修改。
HcDynamicCompressionLevel是用来设置压缩率,默认是0,最高是10。低压缩级别生成稍大一些的压缩文件,但对 CPU 和内存资源的总体影响较小。高压缩级别通常会生成较小的压缩文件,但会占用较多的 CPU 时间和内存。有人说设置成9性价比最高。
HcFileExtensions是用来设置压缩的静态文件扩展名,默认是htm、html、txt,根据网站的自身情况添加扩展名,最基本的是js、css。添加时注意原有的换行格式。
HcScriptFileExtensions是用来设置压缩的动态文件扩展名,默认是asp、dll和exe,根据需要自行添加扩展名,无外乎 aspx、php等。可以将这一项的默认删除留空,这样所有的动态响应都以压缩方式发送。另外,还将动态压缩 HcFileExtensions 中所有未指定的静态文件类型,并且因此不将它们放入缓存。同样地,必须将 HcDoDynamicCompression 设置为 true,以进行动态压缩。
PHP Gzip
/*
*压缩数据
*/
publicstaticfunctionob_gzip($content)//$content就是要压缩的页面内容,或者说饼干原料
{
if(!headers_sent()&&//如果页面头部信息还没有输出
extension_loaded("zlib")&&//而且zlib扩展已经加载到PHP中
strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip"))//而且浏览器说它可以接受GZIP的页面
{
$content=gzencode($content."OK",9);//此页已压缩”的注释标签,然后用zlib提供的gzencode()函数执行级别为9的压缩,这个参数值范围是0-9,0表示无压缩,9表示最大压缩,当然压缩程度越高越费CPU。
//然后用header()函数给浏览器发送一些头部信息,告诉浏览器这个页面已经用GZIP压缩过了!
header("Content-Encoding:gzip");
header("Vary:Accept-Encoding");
header("Content-Length:".strlen($content));
}
return$content;//返回压缩的内容,或者说把压缩好的饼干送回工作台。
}