<!-- review: finished -->

<a id="http-slice"></a>

# Slice

Фильтр, который разбивает запрос на подзапросы, каждый из которых возвращает определенный диапазон ответа. Фильтр обеспечивает более эффективное кэширование больших ответов.

При [сборке из исходного кода](https://angie.software//angie/docs/installation/sourcebuild.md#sourcebuild) модуль не собирается по умолчанию; его необходимо
включить с помощью [параметра сборки](https://angie.software//angie/docs/installation/sourcebuild.md#configure)
`‑‑with‑http_slice_module`.
В пакетах и образах из
[наших репозиториев](https://angie.software//angie/docs/installation/index.md#install-packages)
модуль включен в сборку.

<a id="configuration-example-39"></a>

## Пример конфигурации

```nginx
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 мегабайт.

<a id="directives-42"></a>

## Директивы

<a id="index-0"></a>

<a id="id3"></a>

### slice

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `slice` размер;        |
|------------------------------------------------------------------------------------------|------------------------|
| По умолчанию                                                                             | `slice 0;`             |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location |

Задает размер фрагмента. Нулевое значение запрещает разбиение ответов на фрагменты.

#### WARNING
Обратите внимание, что слишком низкое значение может привести к излишнему потреблению памяти и открытию большого количества файлов.

Для того, чтобы подзапрос вернул необходимый диапазон, переменная [$slice_range](#v-slice-range) должна быть передана на проксируемый сервер в качестве поля `Range` заголовка запроса. Если включено [кэширование](https://angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-cache), то необходимо добавить [$slice_range](#v-slice-range) в [ключ кэширования](https://angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-cache-key) и [включить](https://angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-cache-valid) кэширование ответов с кодом 206.

<a id="built-in-variables-10"></a>

## Встроенные переменные

<a id="v-slice-range"></a>

### `$slice_range`

текущий диапазон фрагмента в формате [HTTP byte range](https://datatracker.ietf.org/doc/html/rfc7233#section-2.1), например bytes=0-1048575.
