① 什麼是緩存目錄給予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;//返回壓縮的內容,或者說把壓縮好的餅干送回工作台。
}