HTTP 分片

使用 HTTP 分片動作將大型快取物件拆分為多個範圍請求。

HTTP 分片把大型響應拆分為固定大小的位元組範圍子請求,並分別快取這些分片。 它適合大型檔案、影片和其他支援位元組範圍請求的靜態物件。

此功能在 OpenResty Edge 26.12.1-1 中首次引入。

配置動作

  1. 在 HTTP 應用頁面規則、全域性改寫規則或全域性自定義動作中新增 開啟 HTTP 分片。
  2. 設定分片大小。Edge Admin 以 MB 顯示該值,最小值為 1 MB。
  3. 確保同一請求已經啟用代理快取,然後儲存併發布配置。

設定 HTTP 分片大小

分片只對快取請求生效。閘道器會使用 Range 向源站獲取各個分片,客戶端仍看到 一個連續響應。分片成功時,源站應正確支援位元組範圍請求,並返回 200 或 206。

選擇分片大小

較小的分片可以減少首次讀取所需的資料量,但會增加源站請求數和快取鍵數量; 較大的分片會減少請求數,但可能增加首包等待和無用資料回源。應根據物件大小、 客戶端訪問方式和源站承載能力測試後再確定。控制台會對 128 MB 或更大的值給出提示。

限制和故障排查

  • 不要在同一個請求上設定、新增或修改發往源站的 Range 請求頭。
  • 依賴完整響應體的規則與客戶端自己的範圍請求可能和分片衝突,並導致 500。 發生衝突時,移除相關 Range 處理或關閉 HTTP 分片。
  • 每個分片都可能獨立重試。源站不穩定時,請求重試次數會按分片放大。
  • 修改分片大小會產生不同的快取鍵。釋出前應評估快取空間和源站流量變化。