前言
Windows Server 內建 IIS 是架站常用工具,新手能速建像模像樣的 Web 站點,但配置優化 IIS 使訪問效能達最優非易事。本文以 Windows Server 2003 IIS 6.0 為例,客戶端 Mozilla Firefox 3.0 + Yahoo YSlow 擴充套件,演示逐步優化流程。
YSlow 是 Yahoo 開發團隊基於 Firebug 開發的插件,分析網頁並依高效能網站規則評分,指明影響速度的環節與優化方向。我們的 IIS 優化策略即基於 YSlow。
優化實戰 13 步
- 減少 HTTP 請求數:修改網站代碼,減少外部圖片、CSS、JS 檔案數量,手動合併多個 CSS/JS。IIS 端無需設定。
- 使用 CDN:小網站可免,有預算者可嘗試,技術層面解決用戶訪問響應慢。
- 啟用內容過期:靜態檔案啟用內容過期提升訪問效能。目錄劃分合理(圖片/CSS/JS 分目錄),IIS 中選目錄 → 屬性 → HTTP 標頭 → 啟用內容過期(如 30 天)。瀏覽器比對日期決定讀取快取或請求更新,靜態資源極少變動,多從本地快取讀取,加快顯示。
- 啟用 Gzip 壓縮:HTTP 壓縮在伺服器與瀏覽器間傳輸壓縮文字內容(HTML/JS/CSS),採用 Gzip 等通用演算法。最大好處:降低網路傳輸資料量,提升客戶端訪問速度。
操作:右鍵「網站」→ 屬性 → 「服務」 → 「HTTP 壓縮」勾選「壓縮靜態檔案」,「暫存目錄」建議另設一盤目錄。
IIS 管理器 → 右鍵「Web 服務擴展」 → 「新增 Web 服務擴展」 → 擴展名輸入「HTTPCompression」,添加「要求的檔案」C:\WINDOWS\system32\inetsrv\gzip.dll(系統目錄依安裝而異),勾選「設定擴展狀態為允許」。
編輯 C:\Windows\System32\inetsrv\MetaBase.xml,在 HcFileExtensions 添加需壓縮靜態檔副檔名(預設 html/txt,建議加 js/css,勿加圖片/ZIP 等已壓縮檔)。
- 樣式檔放頭部:基本 HTML 規範,所有 CSS 放在頁面頭部。
- 腳本檔放尾部:基本 HTML 規範,所有 JS 放在頁面尾部。
- 避免 CSS 表達式:多數人本來就不用。
- 使用外部 JavaScript 與 CSS:做成外部檔引用,讓瀏覽器可快取(參見第 3 點)。
- 減少 DNS 查詢:域名 DNS 查詢帶來額外開銷,頁面檔案主機域名控制在 2-4 個以內,不降低裝載速度。
- 壓縮 JavaScript 檔案:刪除不必要字符改善載入時間,多種 JS 壓縮工具可用,文中提供下載連結。
- 避免重定向:網頁重定向帶來額外開銷,避免頁面跳轉重定向。
- 刪除重複腳本:單頁兩次引用同一 JS 影響載入效能,刪除重複引用。
- 配置 ETag:理論上刪除 ETag 提升 HTTP 請求效能,但微軟官方修改法在 IIS 6.0 無實際效果,最終用 remetag 以 ISAPI 方式實現刪除 ETag。
總結
經網站前端重構與 Web 伺服器配置修改,頁面結構更規範,多數重構頁面獲不錯 YSlow 評分,整體效能明顯提升。終端用戶明顯感受訪問速度變快,瀏覽體驗顯著改善。