モジュール 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        http://localhost:8000;
}

この例では、応答は 1 メガバイトのキャッシュ可能なスライスに分割されます。

ディレクティブ

構文 slice size;
デフォルト
slice 0;
コンテキスト httpserverlocation

スライスの size を設定します。ゼロ値は、応答をスライスに分割することを無効にします。値が低すぎると、過剰なメモリ使用や多数のファイルのオープンが発生する場合があります。

サブリクエストが必須の範囲を返すために、$slice_range 変数を Range リクエストヘッダーフィールドとしてプロキシサーバーに 渡す 必要があります。 $slice_rangeキャッシング が有効になっている場合は キャッシュキー に追加され、206 ステータスコードの応答のキャッシュは 有効にする 必要あります。

埋め込み変数

ngx_http_slice_module モジュールは次の埋め込み変数をサポートしています。

$slice_range
HTTP バイト範囲 形式の現在のスライス範囲、例: bytes=0-1048575