IIS6.0 開啟Gzip與PHP Gzip

來源:互聯網
上載者:User

標籤:c   style   class   blog   code   java   

因為在做一個項目,項目裡面伺服器主要提供資料,但是資料多了檔案就大了,比較浪費流量和時間,我們便用Gzip來處理。我在本機上是apache,伺服器上是IIS6.0,用的是php,那麼我就在這裡分享一下。

IIS 的 GZIP 壓縮                                                                        

1.首先備份 IIS 的設定檔, 複製 C:\Windows\system32\inetsrv\metabase.xml到另外的備份檔案夾中.   C:\Windows\system32\inetsrv\metabase.xml是 IIS 的核心設定檔,該檔案的完整性一但被破壞,IIS 將無法正常運行,嚴重到需要重新安裝系統.

2. 在開始菜單中啟動 Internet 資訊服務(IIS)管理器,右鍵點擊“網站”屬性,開啟“服務”選項卡,勾選“HTTP 壓縮”的兩個選項。“臨時目錄”和“臨時目錄最大容量”可根據需要自行設定。設定完成後點擊確定。

3. 右鍵點擊“網站”下方的 “Web服務擴充”,添加一個新的Web服務擴充,副檔名填寫為“HTTP Compression”或其他,都可以。“要求的檔案”添加:c:\windows\system32\inetsrv\gzip.dll ,並勾選“設定擴充狀態為允許”,完成後點擊確定。 

4.下面的步驟有些複雜,如果沒有確定的把握能理解,最好不要嘗試,右鍵點擊“Internet 資訊服務的”“本機電腦”屬性,勾選“允許直接編輯設定資料庫”並確定。

5. 在開始菜單中運行 notepad C:\Windows\system32\inetsrv\metabase.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                                                                                

/** 壓縮資料*/public static function ob_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; //返回壓縮的內容,或者說把壓縮好的餅乾送回工作台。}

 

 

 

 

轉載請註明出處:http://www.cnblogs.com/yydcdut

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.