view xml/ru/docs/http/ngx_http_slice_module.xml @ 1616:9e8ec9c67cf3

Documented ngx_http_slice_module.
author Yaroslav Zhuravlev <yar@nginx.com>
date Tue, 08 Dec 2015 18:53:15 +0300
parents
children 51e1c73cc027
line wrap: on
line source

<?xml version="1.0"?>

<!--
  Copyright (C) Nginx, Inc.
  -->

<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">

<module name="Модуль ngx_http_slice_module"
        link="/ru/docs/http/ngx_http_slice_module.html"
        lang="ru"
        rev="1">

<section id="summary">

<para>
Модуль <literal>ngx_http_slice_module</literal> (1.9.8) — это фильтр,
который разбивает запрос на подзапросы,
каждый из которых возвращает определённый диапазон ответа.
Фильтр обеспечивает более эффективное кэширование больших ответов.
</para>

<para>
По умолчанию этот модуль не собирается, его сборку необходимо
разрешить с помощью конфигурационного параметра
<literal>--with-http_slice_module</literal>.
</para>

</section>


<section id="example" name="Пример конфигурации">

<para>
<example>
location / {
    <emphasis>slice</emphasis>             1m;
    proxy_cache       cache;
    proxy_cache_key   $uri$is_args$args<emphasis>$slice_range</emphasis>;
    proxy_set_header  Range <emphasis>$slice_range</emphasis>;
    proxy_cache_valid 200 206 1h;
    proxy_pass        http://localhost:8000;
}
</example>
В данном примере
ответ разбивается на кэшируемые фрагменты размером в 1 мегабайт.
</para>
</section>


<section id="directives" name="Директивы">

<directive name="slice">
<syntax><literal>размер</literal></syntax>
<default>0</default>
<context>http</context>
<context>server</context>
<context>location</context>

<para>
Задаёт <value>размер</value> фрагмента.
Нулевое значение запрещает разбиение ответов на фрагменты.
Обратите внимание, что слишком низкое значение может привести
к излишнему потреблению памяти
и открытию большого количества открытых файловых дескрипторов.
</para>

<para>
Для того, чтобы подзапрос вернул необходимый диапазон,
переменная <var>$slice_range</var> должна быть
<link doc="ngx_http_proxy_module.xml" id="proxy_set_header">передана</link> на
проксируемый сервер в качестве поля <literal>Range</literal> заголовка запроса.
Если включено
<link doc="ngx_http_proxy_module.xml" id="proxy_cache">кэширование</link>,
то необходимо добавить <var>$slice_range</var> в
<link doc="ngx_http_proxy_module.xml" id="proxy_cache_key">ключ
кэширования</link>
и <link doc="ngx_http_proxy_module.xml" id="proxy_cache_valid">включить</link>
кэширование ответов с кодом 206.
</para>

</directive>

</section>


<section id="variables" name="Встроенные переменные">

<para>
Модуль <literal>ngx_http_slice_module</literal>
поддерживает следующие встроенные переменные:
<list type="tag">

<tag-name id="var_slice_range"><var>$slice_range</var></tag-name>
<tag-desc>
текущий диапазон фрагмента в формате
<link url="https://tools.ietf.org/html/rfc7233#section-2.1">HTTP
byte range</link>,
например <literal>bytes=0-1048575</literal>.
</tag-desc>

</list>
</para>

</section>

</module>