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 |
---|---|
預設 |
slice 0; |
上下文 |
http ,server ,location |
設定片段的 size
。零值會停用將回應分割成片段。請注意,值太低可能會導致過多的記憶體使用並開啟大量檔案。
為了讓子請求傳回所需的範圍,應將 $slice_range
變數傳遞至代理伺服器作為 Range
請求標頭欄位。如果已啟用快取,則應將 $slice_range
新增至快取金鑰,並且應該啟用對具有 206 狀態碼的回應進行快取。
內嵌變數
ngx_http_slice_module
模組支援下列內嵌變數
$slice_range
- 以HTTP 位元組範圍格式表示的目前片段範圍,例如,
bytes=0-1048575
。