[轉載]實戰經驗:IIS網站伺服器效能優化攻略

楊俊明發表於2009-06-25

原文出處[搜狐IT]:http://it.sohu.com/20090413/n263359097.shtml

Windows Server自帶的網際網路資訊伺服器(Internet Information Server,IIS)是架設網站伺服器的常用工具,它是一個既簡單而又麻煩的東西,新手都可以使用IIS架設一個像模像樣的Web站點來,但配置、優化 IIS的效能,使得網站訪問效能達到最優狀態卻不是一件簡單的事情,這裡我就介紹一下如何一步一步的優化你的IIS伺服器。
 
 
 

  伺服器端環境,我們以Windows Server 2003的IIS6.0為例,客戶端環境為Mozilla Firefox 3.0,同時安裝Yahoo的YSlow擴充套件。

  YSlow是 Yahoo開發者團隊釋出的一款基於Firebug的外掛。用於分析網頁,並根據一些高效能網站的規則進行相應的評級打分,對於網頁效能優化有很好的幫助 作用,告訴你那些部分影響了你的網頁速度,並告訴你如何基於某些規則而進行優化。我們對於IIS的優化策略就是基於YSlow的。

  使用安裝了YSlow的Firefox開啟目標網站,然後點選YSlow圖示,點選Performance。

  其中Performance Grade為YSlow對你網站的評級,A(100分)為最高,F為最低,後面列出如何進行修改,下面我以IIS 6.0為例介紹一下如何進行優化網站效能。

  1、減少HTTP請求數量

  這主要是修改網站程式碼,減少外部圖片、CSS、JS等檔案數量,手動合併多個CSS/JavaScript檔案。IIS那裡不用設定。

  2、使用CDN

  對於小網站來說,這個就免了吧。當然有錢人可以試試,可以從技術上解決使用者訪問網站響應速度慢的問題。

  3、啟用內容過期

  對於靜態檔案啟用內容過期可以提高訪問效能。首先網站的目錄要劃分合理,圖片、CSS、JavaScript均放在單獨目錄下,然後在IIS中選擇目 錄,點屬性-HTTP頭,啟用內容過期,可以選擇30天后過去,這樣,使用者瀏覽器將比較當前日期和截止日期,以便決定是顯示快取頁還是從伺服器請求更新的 頁,由於圖片、CSS、JS通常變化較少,因此基本上都從本地快取讀取,從而加快顯示速度。

  4、啟用Gzip壓縮

  HTTP壓縮是在Web伺服器和瀏覽器間傳輸壓縮文字內容的方法。HTTP壓縮採用通用的壓縮演算法如Gzip等壓縮HTML、JavaScript或 CSS檔案。壓縮的最大好處就是降低了網路傳輸的資料量,從而提高客戶端瀏覽器的訪問速度。

  使用方法是,右擊“網站”->“屬性”,選擇“服務”。在“HTTP壓縮”框中選中“壓縮靜態檔案”,“臨時目錄”建議單獨設定另一個盤的目錄下。

  之後,IIS管理器中,右擊“Web服務擴充套件”->“增加一個新的Web服務擴充套件”,在“副檔名”中輸入“HTTPCompression”,添 加“要求的檔案”為C:WINDOWSsystem32inetsrvgzip.dll,其中Windows系統目錄根據您的安裝可能有所不同, 選中“設定擴充套件狀態為允許”。

  最後,使用文字編輯器開啟C:WindowsSystem32inetsrvMetaBase.xml,在HcFileExtensions中 增加需要壓縮的靜態檔案字尾名,預設為HTML和TXT檔案,建議再新增上js、css等,不要新增圖片或ZIP等已經被壓縮的檔案。

  5、將樣式檔案放在頭部

  這是基本的HTML程式碼風格,將所有的CSS檔案都放在HTML頁面的頭部。

  6、將指令碼檔案放在尾部

  這也是基本的HTML程式碼風格,將所有的JavaScript檔案都放在HTML頁面的尾部。

  7、避免CSS表示式

  這點很簡單,因為大多數人從來不用CSS表示式。

  8、使用外部的JavaScript和CSS

  將所有的JavaScript和CSS都做成外部檔案的形式進行引用,這主要是為了讓這些檔案可以被瀏覽器快取起來,參見第三點的介紹。

  9、減少DNS查詢

  域名的DNS查詢會帶來額外的訪問開銷,減少頁面內檔案的主機域名數量,一個頁面的主機域名保持在2-4個以內,這樣就不會降低頁面的裝入速度。

  10、壓縮JavaScript檔案

  壓縮指令碼檔案,刪除不必要的字元,可以改善載入時間,目前有很多JavaScript檔案的壓縮工具,我這裡有一個GUI介面的JS壓縮工具供下載。

  11、避免重定向

  網頁的重定向會帶來額外的執行開銷,因此要避免頁面進行重定向跳轉操作。

  12、刪除重複指令碼

  一個頁面兩次包含同一個JavaScript檔案會影響載入的效能,因此需要將重複的指令碼檔案刪除。

  13、配置ETag

  這是一個令人迷惑的問題。理論上說將伺服器的ETag刪除會提高HTTP請求的效能,但是按照微軟官方提供的修改方法配置IIS 6.0,並沒有實際效果,最終我使用了一個remetag,以ISAPI的方式實現了刪除ETag的功能。

  經過上面這些網站前端重構和WEB伺服器的配置修改,我們的頁面結構就變得更加規範,重構的頁面大多都會取得不錯的YSlow的評分,總體來說效能提升了不少。對於終端使用者來說,也會明顯感受到訪問網站速度變快了很多,網站的瀏覽體驗得到了較好的提升。

 


相關文章