ngx_http_slice_module 模組

已知問題
範例設定
指令
     slice
內嵌變數

ngx_http_slice_module 模組(1.9.8)是一個過濾器,可將請求拆分為子請求,每個子請求返回一定範圍的回應。此過濾器可更有效地快取大型回應。

此模組預設不建置,應使用 --with-http_slice_module 設定參數啟用。

已知問題

目前,此模組在子請求(例如背景快取更新)中無法如預期運作。在這種情況下,建構的請求不支援位元組範圍。

範例設定

location / {
    slice             1m;
    proxy_cache       cache;
    proxy_cache_key   $uri$is_args$args$slice_range;
    proxy_set_header  Range $slice_range;
    proxy_cache_valid 200 206 1h;
    proxy_pass        https://127.0.0.1:8000;
}

在此範例中,回應會分割成 1MB 大小的可快取片段。

指令

語法 slice size;
預設
slice 0;
上下文 httpserverlocation

設定片段的 size。零值會停用將回應分割成片段。請注意,值太低可能會導致過多的記憶體使用並開啟大量檔案。

為了讓子請求傳回所需的範圍,應將 $slice_range 變數傳遞至代理伺服器作為 Range 請求標頭欄位。如果已啟用快取,則應將 $slice_range 新增至快取金鑰,並且應該啟用對具有 206 狀態碼的回應進行快取。

內嵌變數

ngx_http_slice_module 模組支援下列內嵌變數

$slice_range
HTTP 位元組範圍格式表示的目前片段範圍,例如,bytes=0-1048575