Slice#

O módulo é um filtro que divide uma requisição em sub-requisições, cada uma retornando um determinado intervalo de resposta. O filtro fornece cache mais eficaz de respostas grandes.

Ao compilar a partir do código-fonte, este módulo não é compilado por padrão; ele deve ser habilitado com a ‑‑with‑http_slice_module opção de compilação.

Em pacotes e imagens dos nossos repositórios, o módulo está incluído na compilação.

Exemplo de Configuração#

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;
}

Neste exemplo, a resposta é dividida em fatias cacheáveis de 1 megabyte.

Diretivas#

slice#

Sintaxe

slice size;

Padrão

slice 0;

Contexto

http, server, location

Define o tamanho da fatia. O valor zero desabilita a divisão de respostas em fatias.

Aviso

Note que um valor muito baixo pode resultar em uso excessivo de memória e abertura de um grande número de arquivos.

Para que uma sub-requisição retorne o intervalo necessário, a variável $slice_range deve ser passada para o servidor proxy como o campo de cabeçalho de requisição Range. Se o cache estiver habilitado, $slice_range deve ser adicionada à chave de cache e o cache de respostas com código de status 206 deve ser habilitado.

Variáveis Integradas#

$slice_range#

O intervalo da fatia atual no formato HTTP byte range, por exemplo, bytes=0-1048575.