Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> Web 伺服器

IIS 7.0 啟用動態內容壓縮完整指南:原理、設定與注意事項

編輯:Web 伺服器

背景

IIS 7.0 預設啟用靜態檔案壓縮,但停用動態內容壓縮 (如 ASP/ASPX 頁面)。需手動啟用以節省頻寬、提升傳輸速度。

動態壓縮運作模式:urlCompression 區段

關鍵屬性 doDynamicCompression (預設 false) 控制是否壓縮動態產生內容。

關鍵進階選項:dynamicCompressionBeforeCache (BeforeCache)

  • true (預設):** 內容產生 → 壓縮 → 存入輸出快取 → 從快取輸出給客戶端
  • false:** 內容產生 → 存入快取 (未壓縮) → 請求時即時壓縮 → 輸出

BeforeCache = true 的優缺點權衡

優點

  • 相同動態內容只需壓縮一次,後續請求直接從快取輸出
  • 大幅節省 CPU 週期與頻寬
  • 適合高頻請求、內容相對固定的動態頁面

缺點與風險 (微軟官方文件明確警告)

  1. 輸出快取刷新機制衝突: 「當輸出快取回應刷新後,在該回應進入輸出快取之前動態壓縮不會執行。」
  2. 使用自訂輸出快取提供者的網站可能出現:
    • 提供過期內容
    • 將某用戶的個性化內容提供給其他用戶 (嚴重安全/隱私問題)
  3. 壓縮格式衝突: IIS 7 支援 Gzip 與 Deflate。若客戶端未明確指定接受編碼,或應用程式無法處理不同編碼請求,快取機制可能導致錯誤回應。

輸出快取觸發條件

並非所有頁面自動快取。預設規則:10 秒內被請求 2 次以上 (由 frequentHitThreshold 與 frequentHitTimePeriod 控制)。測試時若負載不足,快取不會生效,導致 BeforeCache 行為無法觀察。

建議配置策略

場景建議 BeforeCache說明
純靜態/極少個性化的動態頁面 (如新聞列表、產品目錄)true最大化效能收益
高度個性化頁面 (用戶儀表板、購物車、論壇)false避免快取污染導致資料洩漏
使用自訂 OutputCache Providerfalse微軟明確不建議啟用
不確定/混合型false以安全優先,犧牲部分 CPU 效能換取正確性

啟用步驟 (IIS 管理員)

  1. 選取網站/應用程式 → 雙擊「壓縮」
  2. 勾選「啟用動態內容壓縮」
  3. 點擊右側「編輯功能設定」→ 設定 dynamicCompressionBeforeCache 為 True/False
  4. 或直接編輯 applicationHost.config / web.config 的 <urlCompression> 區段

驗證方法

  • 瀏覽器開發者工具 Network 標籤檢查回應 Header:Content-Encoding: gzip 或 deflate
  • 使用 curl -I -H "Accept-Encoding: gzip, deflate" https://your-site/ 檢查
Copyright © Windows教程網 All Rights Reserved