changeset 253:ff1e139a8c98

Bring the ngx_http_core_module documentation up to date.
author Ruslan Ermilov <ru@nginx.com>
date Mon, 19 Dec 2011 13:10:05 +0000
parents 6f710464be38
children 6080b2b90d15
files xml/ru/docs/http/ngx_http_core_module.xml
diffstat 1 files changed, 1694 insertions(+), 836 deletions(-) [+]
line wrap: on
line diff
--- a/xml/ru/docs/http/ngx_http_core_module.xml	Mon Dec 19 13:06:15 2011 +0000
+++ b/xml/ru/docs/http/ngx_http_core_module.xml	Mon Dec 19 13:10:05 2011 +0000
@@ -2,138 +2,165 @@
 
 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
 
-<module name="Директивы модуля ngx_http_core_module"
+<module name="Модуль ngx_http_core_module"
         link="/ru/docs/http/ngx_http_core_module.html"
         lang="ru">
 
-<section name="Директивы" id="directives">
+<section id="directives" name="Директивы">
 
 <directive name="aio">
-<syntax><value>[on|off|sendfile]</value></syntax>
+<syntax>
+        <value>on</value> |
+        <value>off</value> |
+        <value>sendfile</value>
+</syntax>
 <default>off</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+<appeared-in>0.8.11</appeared-in>
 
 <para>
-Директива (0.8.11) разрешает или запрещает использовать файловый AIO
+Разрешает или запрещает использование файлового асинхронного ввода-вывода (AIO)
 во FreeBSD и Linux.
 </para>
 
 <para>
-Во FreeBSD AIO можно использовать, начиная с FreeBSD 4.3 версии.
-AIO можно собрать в ядре статически
+Во FreeBSD AIO можно использовать, начиная с FreeBSD&nbsp;4.3.
+AIO можно либо собрать в ядре статически:
 <example>
 options VFS_AIO
 </example>
-или же подгрузить динамически
+либо загрузить динамически через загружаемый модуль ядра:
 <example>
 kldload aio
 </example>
 </para>
 
 <para>
-Во FreeBSD 5 и 6 при включении AIO статически или динамически на стадии
-загрузки ядра вся сетевая подсистема будет использовать GiantLock,
-что может негативно сказаться на производительности системы в целом.
-Эта зависимость устранена во FreeBSD-6.4 STABLE от 2009 года и во FreeBSD 7.
-Однако, начиная с FreeBSD 5.3, есть возможность включать AIO,
-не связывая сетевую подсистему GiantLock'ом — для этого модуль AIO
-нужно подгружать уже после загрузки ядра.
-В этом случае в /var/log/messages появится сообщение
+В версиях FreeBSD 5 и 6 включение AIO статически или динамически
+на стадии загрузки ядра приводит к тому, что вся сетевая подсистема
+будет использовать блокировку Giant, что может негативно сказаться на
+производительности системы в целом.
+Это ограничение устранено во FreeBSD&nbsp;6.4-STABLE в 2009 году
+и во FreeBSD&nbsp;7.
+Однако, начиная с FreeBSD&nbsp;5.3 есть возможность включать AIO,
+не связывая сетевую подсистему блокировкой Giant — для этого модуль
+AIO нужно подгружать уже после загрузки ядра.
+В этом случае в <path>/var/log/messages</path> появится следующее сообщение:
 <example>
 WARNING: Network stack Giant-free, but aio requires Giant.
 Consider adding 'options NET_WITH_GIANT' or setting debug.mpsafenet=0
 </example>
 которое можно смело проигнорировать.
 <note>
-Требование использовать GiantLock в AIO связано с тем, что FreeBSD
-поддерживает асинхронные вызовы aio_read()/aio_write() для работы с сокетами.
-Но поскольку nginx использует AIO только для работы с диском, то проблем
-не возникает.
+Требование использовать блокировку Giant в AIO связано с тем, что
+FreeBSD поддерживает асинхронные вызовы
+<c-func>aio_read</c-func>

+<c-func>aio_write</c-func>
+для работы с сокетами.
+Но поскольку nginx использует AIO только для работы с диском,
+то проблем не возникает.
 </note>
 </para>
 
 <para>
-Для работы AIO нужно выключить sendfile:
+Для работы AIO нужно выключить
+<link id="sendfile"/>:
 <example>
-location  /video/ {
-    sendfile        off;
-    aio             on;
-    output_buffers  1 64k;
+location /video/ {
+    sendfile       off;
+    aio            on;
+    output_buffers 1 64k;
 }
 </example>
 </para>
 
 <para>
-Кроме того, начиная с FreeBSD 5.2.1 и nginx-0.8.12, AIO также можно
-использовать для подгрузки данных для sendfile():
+Кроме того, начиная с FreeBSD&nbsp;5.2.1 и nginx&nbsp;0.8.12, AIO также можно
+использовать для подгрузки данных для <c-func>sendfile</c-func>:
 <example>
-location  /video/ {
-    sendfile        on;
-    tcp_nopush      on;
-    aio             sendfile;
+location /video/ {
+    sendfile       on;
+    tcp_nopush     on;
+    aio            sendfile;
 }
 </example>
-В такой конфигурации используется флаг SF_NODISKIO и sendfile()
-не блокируется на диске, а сообщает об отсутствии данных в памяти,
-после чего nginx инициирует асинхронную подгрузку данных,
-читая только один байт. При этом ядро FreeBSD подгружает в память
-первые 128K файла, однако при последующих чтениях файл подгружается
-частями только по 16K. Изменить это можно с помощью директивы
+В такой конфигурации функция <c-func>sendfile</c-func> вызывается с флагом
+<c-def>SF_NODISKIO</c-def>, в результате она не блокируется на диске, а
+сообщает об отсутствии данных в памяти, после чего nginx инициирует
+асинхронную подгрузку данных, читая только один байт.
+При этом ядро FreeBSD подгружает в память первые 128K байт файла, однако
+при последующих чтениях файл подгружается частями только по 16K.
+Изменить это можно с помощью директивы
 <link id="read_ahead"/>.
 </para>
 
 <para>
-В Linux AIO можно использовать, только начиная с версии ядра 2.6.22,
-и, кроме того, ещё необходимо дополнительно включать
-<link id="directio"/>, иначе чтение будет блокирующимся:
+В Linux AIO можно использовать только начиная с версии ядра 2.6.22, и,
+кроме того, ещё необходимо дополнительно включать
+<link id="directio"/>,
+иначе чтение будет блокирующимся:
 <example>
-location  /video/ {
-    aio             on;
-    directio        512;
-    output_buffers  1 128k;
+location /video/ {
+    aio            on;
+    directio       512;
+    output_buffers 1 128k;
 }
 </example>
 </para>
 
 <para>
-Поскольку directio в Linux можно использовать только для чтения блоков,
-выравненных по 512 байт (или 4К для XFS), то невыравненный конец файла
-будет читаться блокировано. То же относится к запросам части ответа
-byte-ranges и к запросам FLV не с начала файла: чтение невыровненных начала
-и конца ответа будет блокирующимся. sendfile выключать не нужно, так
-как при использовании directio он выключается сам.
+Поскольку
+<link id="directio"/>
+в Linux можно использовать только для чтения блоков, выравненных
+на границу 512 байт (или 4К для XFS), то невыравненный конец файла
+будет читаться блокированно.
+То же относится к запросам с указанием диапазона запрашиваемых байт
+(byte-range requests) и к запросам FLV не с начала файла: чтение
+невыравненных начала и конца ответа будет блокирующимся.
+Явно выключать
+<link id="sendfile"/>
+не нужно, так как при использовании
+<link id="directio"/>
+он выключается автоматически.
 </para>
 
 </directive>
 
 
 <directive name="alias">
-<syntax><value>путь</value></syntax>
+<syntax><argument>путь</argument></syntax>
 <default/>
 <context>location</context>
 
 <para>
-Директива задаёт замену для указанного location'а.
+Задаёт замену для указанного location'а.
 Например, при такой конфигурации
 <example>
-location  /i/ {
-    alias  /data/w3/images/;
+location /i/ {
+    alias /data/w3/images/;
 }
 </example>
-на запрос "/i/top.gif" будет отдан файл "/data/w3/images/top.gif".
+на запрос
+“<code>/i/top.gif</code>” будет отдан файл
+<path>/data/w3/images/top.gif</path>.
 </para>
 
 <para>
-В значении пути можно использовать переменные.
+В значении аргумента <argument>путь</argument> можно использовать переменные,
+кроме <var>$document_root</var> и <var>$realpath_root</var>.
 </para>
 
 <para>
-Если директива alias используется внутри location'а, заданного
-регулярным выражением, то регулярное выражение должно содержать выделения,
-а директива alias — ссылки на эти выделения (0.7.40), например:
+Если <code>alias</code> используется внутри location'а, заданного
+регулярным выражением, то регулярное выражение должно содержать
+выделения, а сам <code>alias</code> — ссылки на эти выделения
+(0.7.40), например:
 <example>
 location ~ ^/users/(.+\.(?:gif|jpe?g|png))$ {
-    alias  /data/w3/images/$1;
+    alias /data/w3/images/$1;
 }
 </example>
 </para>
@@ -141,92 +168,132 @@
 <para>
 Если location и последняя часть значения директивы совпадают:
 <example>
-location  /images/ {
-    alias  /data/w3/images/;
+location /images/ {
+    alias /data/w3/images/;
+}
+</example>
+то лучше воспользоваться директивой
+<link id="root"/>:
+<example>
+location /images/ {
+    root /data/w3;
 }
 </example>
-то лучше воспользоваться директивой <link id="root"/>:
-<example>
-location  /images/ {
-    root   /data/w3;
-}
-</example>
+</para>
+
+</directive>
+
+
+<directive name="chunked_transfer_encoding">
+<syntax><value>on</value> | <value>off</value></syntax>
+<default>on</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
+<para>
+Позволяет запретить формат передачи данных частями (chunked transfer
+encoding) в HTTP/1.1.
+Это может понадобиться при использовании программ, не поддерживающих
+chunked encoding, несмотря на требования стандарта.
+</para>
+
+</directive>
+
+
+<directive name="client_body_buffer_size">
+
+<syntax><argument>размер</argument></syntax>
+<default>8k|16k</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
+<para>
+Задаёт размер буфера для чтения тела запроса клиента.
+Если тело запроса больше заданного буфера,
+то всё тело запроса или только его часть записывается во
+<link id="client_body_temp_path">временный файл</link>.
+По умолчанию размер одного буфера равен двум размерам страницы.
+На x86, других 32-битных платформах и x86-64 это 8K.
+На других 64-битных платформах это обычно 16K.
 </para>
 
 </directive>
 
 
 <directive name="client_body_in_file_only">
-<syntax><value>on|clean|off</value></syntax>
+<syntax>
+        <value>on</value> |
+        <value>clean</value> |
+        <value>off</value>
+</syntax>
 <default>off</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива определяет, сохранять ли всё тело запроса клиента в файл.
-Директиву можно использовать для отладки и при использовании
-переменной $request_body_file или метода
-<link doc="ngx_http_perl_module.xml" id="methods">$r-&gt;request_body_file</link>
-модуля ngx_http_perl_module.
+Определяет, сохранять ли всё тело запроса клиента в файл.
+Директиву можно использовать для отладки и при использовании переменной
+<var>$request_body_file</var>
+или метода
+<link doc="ngx_http_perl_module.xml" id="methods">$r->request_body_file</link>
+модуля
+<link doc="ngx_http_perl_module.xml">ngx_http_perl_module</link>.
 </para>
 
 <para>
-При использовании параметра "on" временные файлы по окончании
-обработки запроса не удаляется.
+При установке значения <value>on</value> временные файлы
+по окончании обработки запроса не удаляются.
 </para>
 
 <para>
-Параметр "clean" разрешает удалять временные файлы, оставшиеся по окончании
-обработки запроса.
+Значение <value>clean</value> разрешает удалять временные файлы,
+оставшиеся по окончании обработки запроса.
 </para>
 
 </directive>
 
 
 <directive name="client_body_in_single_buffer">
-<syntax><value>on|off</value></syntax>
+<syntax><value>on</value> | <value>off</value>
+</syntax>
 <default>off</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива определяет, хранить ли всё тело запроса клиента в одном буфере.
-Директива рекомендуется при использовании переменной $request_body
-для уменьшения операций копирования.
-</para>
-
-</directive>
-
-
-<directive name="client_body_buffer_size">
-<syntax><value>размер</value></syntax>
-<default>8k/16k</default>
-<context>http, server, location</context>
-
-<para>
-Директива задаёт размер буфера для чтения тела запроса клиента.
-Если тело запроса больше заданного буфера, то всё тело запроса или только
-его часть записывается во временный файл.
-По умолчанию размер одного буфера равен двум размерам страницы, в зависимости
-от платформы это или 8K, или 16K.
+Определяет, сохранять ли всё тело запроса клиента в одном буфере.
+Директива рекомендуется при использовании переменной
+<var>$request_body</var>
+для уменьшения требуемого числа операций копирования.
 </para>
 
 </directive>
 
 
 <directive name="client_body_temp_path">
-<syntax><value>путь [ уровень1 [ уровень2 [ уровень3 ] ] ]
-</value></syntax>
+<syntax>
+        <argument>путь</argument>
+        [<argument>уровень1</argument>
+        [<argument>уровень2</argument>
+        [<argument>уровень3</argument>]]]
+</syntax>
 <default>client_body_temp</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива задаёт имя каталога для хранения временных файлов с телом запроса
-клиента.
+Задаёт каталог для хранения временных файлов с телами запросов клиентов.
 В каталоге может использоваться иерархия подкаталогов до трёх уровней.
 Например, при такой конфигурации
 <example>
-client_body_temp_path  /spool/nginx/client_temp 1 2;
+client_body_temp_path /spool/nginx/client_temp 1 2;
 </example>
-имя временного будет такого вида:
+временный файл будет следующего вида:
 <example>
 /spool/nginx/client_temp/7/45/00000123457
 </example>
@@ -236,33 +303,38 @@
 
 
 <directive name="client_body_timeout">
-<syntax><value>время</value></syntax>
-<default>60</default>
-<context>http, server, location</context>
+<syntax><argument>время</argument></syntax>
+<default>60s</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива задаёт таймаут при чтении тела запроса клиента.
+Задаёт таймаут при чтении тела запроса клиента.
 Таймаут устанавливается не на всю передачу тела запроса,
-а только между двумя операциями чтения.
+а только между двумя последовательными операциями чтения.
 Если по истечении этого времени клиент ничего не передаст,
-то ему возвращается ошибка "Request time out" (408).
+то клиенту возвращается ошибка
+<http-status code="408" text="Request Time-out"/>.
 </para>
 
 </directive>
 
 
 <directive name="client_header_buffer_size">
-<syntax><value>размер</value></syntax>
+<syntax><argument>размер</argument></syntax>
 <default>1k</default>
-<context>http, server</context>
+<context>http</context>
+<context>server</context>
 
 <para>
-Директива задаёт размер буфера для чтения заголовка запроса клиента.
-Для подавляющего большинства запросов вполне достаточно буфера размером в 1K.
-Однако если в запросе есть большие cookies или же запрос пришёл
-от wap-клиента, то он может не поместиться в 1K.
-Поэтому, если строка запроса или строка заголовка запроса не помещается
-полностью в этот буфер, то выделяются большие буферы, задаваемые директивой
+Задаёт размер буфера для чтения заголовка запроса клиента.
+Для большинства запросов достаточно буфера размером в 1K байт.
+Однако если в запросе есть длинные cookies, или же запрос
+пришёл от WAP-клиента, то он может не поместиться в 1K.
+Поэтому, если строка запроса или поле заголовка запроса
+не помещаются полностью в этот буфер, то выделяются буферы
+большего размера, задаваемые директивой
 <link id="large_client_header_buffers"/>.
 </para>
 
@@ -270,62 +342,96 @@
 
 
 <directive name="client_header_timeout">
-<syntax><value>время</value></syntax>
-<default>60</default>
-<context>http, server</context>
+<syntax><argument>время</argument></syntax>
+<default>60s</default>
+<context>http</context>
+<context>server</context>
 
 <para>
-Директива задаёт таймаут при чтении заголовка запроса клиента.
-Если по истечении этого времени клиент не передаст полностью заголовок
-запроса, то ему возвращается ошибка "Request time out" (408).
+Задаёт таймаут при чтении заголовка запроса клиента.
+Если по истечении этого времени клиент не передаст полностью заголовок,
+то клиенту возвращается ошибка
+<http-status code="408" text="Request Time-out"/>.
 </para>
 
 </directive>
 
 
 <directive name="client_max_body_size">
-<syntax><value>размер</value></syntax>
+<syntax><argument>размер</argument></syntax>
 <default>1m</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива задаёт максимально допустимый размер тела запроса клиента,
-указываемый в строке "Content-Length" в заголовке запроса.
+Задаёт максимально допустимый размер тела запроса клиента,
+указываемый в поле
+<header>Content-Length</header>
+заголовка запроса.
 Если размер больше заданного, то клиенту возвращается ошибка
-"Request Entity Too Large" (413). Следует иметь в виду, что
-<link url="http://sysoev.ru/web/upload.html">браузеры не умеют
-корректно показывать эту ошибку</link>.
+<http-status code="413" text="Request Entity Too Large"/>.
+Следует иметь в виду, что
+<!--link doc="/web/upload.xml"-->браузеры не умеют корректно показывать
+эту ошибку<!--/link-->.
+Установка аргумента <argument>размер</argument> в 0 отключает
+проверку размера тела запроса клиента.
+</para>
+
+</directive>
+
+
+<directive name="connection_pool_size">
+<syntax><argument>размер</argument></syntax>
+<default>256</default>
+<context>http</context>
+<context>server</context>
+
+<para>
+Позволяет производить точную настройку выделений памяти
+под конкретные соединения.
+Эта директива не оказывает существенного влияния на
+производительность и её не следует использовать.
 </para>
 
 </directive>
 
 
 <directive name="default_type">
-<syntax><value>MIME-тип</value></syntax>
+<syntax><argument>mime-тип</argument></syntax>
 <default>text/plain</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива задаёт MIME-тип ответов по умолчанию.
+Задаёт MIME-тип ответов по умолчанию.
+См. также директиву <link id="types"/>.
 </para>
 
 </directive>
 
 
 <directive name="directio">
-<syntax><value>[размер|off]</value></syntax>
+<syntax><argument>размер</argument> | <value>off</value></syntax>
 <default>off</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+<appeared-in>0.7.7</appeared-in>
 
 <para>
-Директива (0.7.7) разрешает использовать флаги
-O_DIRECT (FreeBSD, Linux), F_NOCACHE (Mac OS X) или функцию directio() (Solaris)
+Разрешает использовать флаги
+<c-def>O_DIRECT</c-def> (FreeBSD, Linux),
+<c-def>F_NOCACHE</c-def> (Mac OS X)
+или функцию <c-func>directio</c-func> (Solaris)
 при чтении файлов, размер которых больше либо равен указанному.
 Директива автоматически запрещает (0.7.15) использование
-<link id="sendfile">sendfile'а</link> для данного запроса.
+<link id="sendfile"/>
+для данного запроса.
 Рекомендуется использовать для больших файлов:
 <example>
-directio  4m;
+directio 4m;
 </example>
 или при использовании <link id="aio"/> в Linux.
 </para>
@@ -334,14 +440,17 @@
 
 
 <directive name="directio_alignment">
-<syntax><value>размер</value></syntax>
+<syntax><argument>размер</argument></syntax>
 <default>512</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+<appeared-in>0.8.11</appeared-in>
 
 <para>
-Директива (0.8.11) устанавливает выравнивание для
+Устанавливает выравнивание для
 <link id="directio"/>.
-В большинстве случае достаточно выравнивания 512 байт, однако
+В большинстве случаев достаточно 512-байтового выравнивания, однако
 при использовании XFS под Linux его нужно увеличить до 4K.
 </para>
 
@@ -349,40 +458,47 @@
 
 
 <directive name="error_page">
-<syntax><value>код [код ...] [=|=ответ] uri</value>
+<syntax>
+        <argument>код</argument> ...
+        [<value>=</value>[<argument>ответ</argument>]]
+        <argument>uri</argument>
 </syntax>
 <default/>
-<context>http, server, location, if в location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+<context>if в location</context>
 
 <para>
-Директива задаёт URI, который будет показываться для указанных ошибок.
-Директивы наследуются с предыдущего уровня при условии, что на данном
-уровне не описаны свои директивы error_page.
-В URI можно использовать переменные.
+Задаёт URI, который будет показываться для указанных ошибок.
+Директивы <code>error_page</code> наследуются с предыдущего уровня при условии,
+что на данном уровне не описаны свои директивы
+<code>error_page</code>.
+В значении URI можно использовать переменные.
 </para>
 
 <para>
-Пример использования:
+Пример:
 <example>
-error_page   404          /404.html;
-error_page   502 503 504  /50x.html;
-error_page   403          http://example.com/forbidden.html;
+error_page 404         /404.html;
+error_page 502 503 504 /50x.html;
+error_page 403         http://example.com/forbidden.html;
 </example>
 </para>
 
 <para>
 Кроме того, можно поменять код ответа на другой, например:
 <example>
-error_page   404  =200  /empty.gif;
+error_page 404 =200 /empty.gif;
 </example>
 </para>
 
 <para>
 Если ошибочный ответ обрабатывается проксированным сервером или
-FastCGI-сервером и этот сервер может вернуть разные коды ответов,
-например, 200, 302, 401 или 404, то можно выдавать возвращаемый код:
+FastCGI-сервером, и этот сервер может вернуть разные коды ответов,
+например, 200, 302, 401 или 404, то можно выдавать возвращаемый им код:
 <example>
-error_page   404  =  /404.php;
+error_page 404 = /404.php;
 </example>
 </para>
 
@@ -391,11 +507,11 @@
 обработку ошибки в именованный location:
 <example>
 location / {
-    error_page   404  =  @fallback;
+    error_page 404 = @fallback;
 }
 
 location @fallback {
-    proxy_pass   http://backend;
+    proxy_pass http://backend;
 }
 </example>
 </para>
@@ -404,28 +520,41 @@
 
 
 <directive name="if_modified_since">
-<syntax><value>[off|exact|before]</value></syntax>
+<syntax>
+        <value>off</value> |
+        <value>exact</value> |
+        <value>before</value>
+</syntax>
 <default>exact</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+<appeared-in>0.7.24</appeared-in>
 
 <para>
-Директива (0.7.24) определяет, как сравнивать время модификации ответа и
-время в заголовке запроса "If-Modified-Since":
-<list type="bullet">
-
-<listitem>
-off — не проверять заголовок запроса
-"If-Modified-Since" (0.7.34);
-</listitem>
-
-<listitem>
-exact — точно совпадение;
-</listitem>
-
-<listitem>
-before — время модификации ответа меньше или равно времени, заданному
-в заголовке запроса "If-Modified-Since".
-</listitem>
+Определяет, как сравнивать время модификации ответа с
+временем в поле
+<header>If-Modified-Since</header>
+заголовка запроса:
+
+<list type="tag">
+
+<tag-name><value>off</value></tag-name>
+<tag-desc>
+не проверять поле
+<header>If-Modified-Since</header> заголовка запроса (0.7.34);
+</tag-desc>
+
+<tag-name><value>exact</value></tag-name>
+<tag-desc>
+точное совпадение;
+</tag-desc>
+
+<tag-name><value>before</value></tag-name>
+<tag-desc>
+время модификации ответа меньше или равно времени, заданному в поле
+<header>If-Modified-Since</header> заголовка запроса.
+</tag-desc>
 
 </list>
 </para>
@@ -433,39 +562,61 @@
 </directive>
 
 
+<directive name="ignore_invalid_headers">
+<syntax><value>on</value> | <value>off</value></syntax>
+<default>on</default>
+<context>http</context>
+<context>server</context>
+
+<para>
+Если включено, nginx игнорирует поля заголовка с недопустимыми именами.
+Допустимыми считаются имена, состоящие из английских букв, цифр, дефисов
+и возможно знаков подчёркивания (последнее контролируется директивой
+<link id="underscores_in_headers"/>).
+</para>
+
+</directive>
+
+
 <directive name="internal">
 <syntax/>
 <default/>
 <context>location</context>
 
 <para>
-Директива указывает, что данный location может использоваться только
-для внутренних запросов.
-Для внешних запросов будет возвращаться ошибка "Not found" (404).
-Внутренними запросами являются
+Указывает, что location может использоваться только для внутренних запросов.
+Для внешних запросов клиенту будет возвращаться ошибка
+<http-status code="404" text="Not Found"/>.
+Внутренними запросами являются:
+
 <list type="bullet">
 
 <listitem>
-запросы, перенаправленные директивой error_page;
+запросы, перенаправленные директивой <link id="error_page"/>;
 </listitem>
 
 <listitem>
-подзапросы, формируемые командой include virtual модуля ngx_http_ssi_module;
+подзапросы, формируемые командой
+<command>include virtual</command>
+модуля
+<link doc="ngx_http_ssi_module.xml">ngx_http_ssi_module</link>;
+ngx_http_ssi_module;
 </listitem>
 
 <listitem>
-запросы, изменённые директивой rewrite модуля ngx_http_rewrite_module.
+запросы, изменённые директивой
+<link doc="ngx_http_rewrite_module.xml" id="rewrite"/>.
 </listitem>
 
 </list>
 </para>
 
 <para>
-Пример использования:
+Пример:
 <example>
-error_page   404   /404.html;
-
-location  /404.html {
+error_page 404 /404.html;
+
+location /404.html {
     internal;
 }
 </example>
@@ -474,30 +625,69 @@
 </directive>
 
 
+<directive name="keepalive_disable">
+<syntax><value>none</value> | <argument>браузер</argument> ...</syntax>
+<default>msie6 safari</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
+<para>
+Запрещает keep-alive соединения с некорректно ведущими себя браузерами.
+Аргументы <argument>браузер</argument> указывают, на какие браузеры это
+распространяется.
+Значение <value>msie6</value> запрещает keep-alive соединения
+со старыми версиями MSIE после получения запроса POST.
+Значение <value>safari</value> запрещает keep-alive соединения
+с браузерами Safari.
+Значение <value>none</value> разрешает keep-alive соединения
+со всеми браузерами.
+</para>
+
+</directive>
+
+
 <directive name="keepalive_requests">
-<syntax><value>число</value></syntax>
+<syntax><argument>число</argument></syntax>
 <default>100</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+<appeared-in>0.8.0</appeared-in>
 
 <para>
-Директива (0.8.0) задаёт максимальное число запросов, которые можно
+Задаёт максимальное число запросов, которые можно
 сделать по одному keep-alive соединению.
+После того, как будет сделано максимальное число запросов,
+соединение закрывается.
 </para>
 
 </directive>
 
 
 <directive name="keepalive_timeout">
-<syntax><value>время [время]</value></syntax>
-<default>75</default>
-<context>http, server, location</context>
+<syntax>
+        <argument>таймаут</argument>
+        [<argument>заголовок_таймаута</argument>]
+</syntax>
+<default>75s</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива задаёт таймаут, в течение которого keep-alive соединение
-с клиентом не будет закрыто со стороны сервера.
-Второй параметр задаёт значение в строке "Keep-Alive: timeout=время"
-в заголовке ответа. Параметры могут отличаться друг от друга.
-Строку "Keep-Alive: timeout=время" понимают Mozilla и Konqueror.
+Первый аргумент задаёт таймаут, в течение которого keep-alive
+соединение с клиентом не будет закрыто со стороны сервера.
+Второй необязательный параметр задаёт значение в поле
+<header>Keep-Alive: timeout=<argument>время</argument></header>
+заголовка ответа.
+Два аргумента могут отличаться друг от друга.
+</para>
+
+<para>
+Поле
+<header>Keep-Alive: timeout=<argument>время</argument></header>
+заголовка понимают Mozilla и Konqueror.
 MSIE сам закрывает keep-alive соединение примерно через 60 секунд.
 </para>
 
@@ -505,76 +695,102 @@
 
 
 <directive name="large_client_header_buffers">
-<syntax><value>число размер</value>
-</syntax>
-<default>4 4k/8k</default>
-<context>http, server</context>
+<syntax><argument>число размер</argument></syntax>
+<default>4 8k</default>
+<context>http</context>
+<context>server</context>
 
 <para>
-Директива задаёт максимальное число и размер буферов для чтения
-большого заголовка запроса клиента.
-Строка запроса должна быть не больше размера одного буфера, иначе клиенту
-возвращается ошибка "Request URI too large" (414).
-Длинная строка заголовка запроса также должна быть не больше размера одного
-буфера, иначе клиенту возвращается ошибка "Bad request" (400).
+Задаёт максимальное <argument>число</argument> и <argument>размер</argument>
+буферов для чтения большого заголовка запроса клиента.
+Строка запроса не должна превышать размера одного буфера, иначе клиенту
+возвращается ошибка
+<http-status code="414" text="Request-URI Too Large"/>.
+Поле заголовка запроса также не должно превышать размера одного буфера,
+иначе клиенту возвращается ошибка
+<http-status code="400" text="Bad Request"/>.
 Буферы выделяются только по мере необходимости.
-По умолчанию размер одного буфера равен размеру страницы, в зависимости
-от платформы это или 4K, или 8K.
+По умолчанию размер одного буфера равен 8K байт.
 Если по окончании обработки запроса соединение переходит в состояние
-keep-alive, то эти буферы освобождаются.
+keep-alive, эти буферы освобождаются.
 </para>
 
 </directive>
 
 
 <directive name="limit_except">
-<syntax block="yes"><value>методы</value></syntax>
+<syntax block="yes"><argument>метод</argument> ...</syntax>
 <default/>
 <context>location</context>
 
 <para>
-Директива ограничивает HTTP-методы, доступные внутри location.
-Метод GET также включает в себя метод HEAD.
-Для ограничения могут использоваться директивы модулей
+Ограничивает HTTP-методы, доступные внутри location.
+Аргумент <argument>метод</argument> может быть одним из
+<value>GET</value>,
+<value>HEAD</value>,
+<value>POST</value>,
+<value>PUT</value>,
+<value>DELETE</value>,
+<value>MKCOL</value>,
+<value>COPY</value>,
+<value>MOVE</value>,
+<value>OPTIONS</value>,
+<value>PROPFIND</value>,
+<value>PROPPATCH</value>,
+<value>LOCK</value>,
+<value>UNLOCK</value>
+или
+<value>PATCH</value>.
+Если разрешён метод <value>GET</value>, то метод
+<value>HEAD</value> также будет разрешён.
+Доступ к остальным методам может быть ограничен при помощи директив модулей
 <link doc="ngx_http_access_module.xml">ngx_http_access_module</link>
-и <link doc="ngx_http_auth_basic_module.xml">ngx_http_auth_basic_module</link>:

+<link doc="ngx_http_auth_basic_module.xml">ngx_http_auth_basic_module</link>:
 <example>
-limit_except  GET {
-    allow  192.168.1.0/32;
-    deny   all;
+limit_except GET {
+    allow 192.168.1.0/32;
+    deny  all;
 }
 </example>
-Обратите внимание, что данное ограничение будет выполняться для всех методов,
-<value>кроме</value> методов GET и HEAD.
+Обратите внимание, что данное ограничение действует для всех методов,
+<emphasis>кроме</emphasis> GET и HEAD.
 </para>
 
 </directive>
 
 
 <directive name="limit_rate">
-
-<syntax><value>скорость</value></syntax>
-<default/>
-<context>http, server, location, if в location</context>
+<syntax><argument>скорость</argument></syntax>
+<default>0</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+<context>if в location</context>
 
 <para>
-Директива задаёт скорость передачи ответа клиенту.
+Ограничивает скорость передачи ответа клиенту.
 Скорость задаётся в байтах в секунду.
-
-Ограничение работает только для одного соединения, то есть,
-если клиент откроет 2 соединения, то суммарная скорость будет в 2 раза
-выше ограниченной.
+Значение 0 (установка по умолчанию) отключает ограничение скорости.
+<!--
+Чем меньше скорость, тем более аккуратным будет ограничение.
+-->
+Ограничение срабатывает только для одного соединения, то есть если
+клиент откроет 2 соединения, то суммарная скорость будет в 2 раза
+выше заданного ограничения.
 </para>
 
 <para>
-Если необходимо ограничить скорость для части клиентов на уровне сервера,
-то директива limit_rate для этого не подходит. Вместо этого следует
-задать нужную скорость переменной $limit_rate:
+Если необходимо ограничить скорость для части клиентов на уровне
+<link id="server">сервера</link>, то директива <code>limit_rate</code>
+для этого не подходит.
+Вместо этого следует задать желаемое ограничение скорости в переменной
+<var>$limit_rate</var>:
 <example>
 server {
 
     if ($slow) {
-        set $limit_rate  4k;
+        set $limit_rate 4k;
     }
 
     ...
@@ -586,18 +802,26 @@
 
 
 <directive name="limit_rate_after">
-<syntax><value>размер</value></syntax>
-<default/>
-<context>http, server, location, if в location</context>
+<syntax><argument>размер</argument></syntax>
+<default>0</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+<context>if в location</context>
+<appeared-in>0.8.0</appeared-in>
 
 <para>
-Директива (0.8.0) задаёт объём данных, после передачи которого
-начинает ограничиваться скорость передачи ответа клиенту, например:
+Задаёт начальный объём данных, после передачи которого начинает
+ограничиваться скорость передачи ответа клиенту.
+</para>
+
+<para>
+Пример:
 <example>
 location /flv/ {
     flv;
-    limit_rate_after  500k;
-    limit_rate        50k;
+    limit_rate_after 500k;
+    limit_rate       50k;
 }
 </example>
 </para>
@@ -605,127 +829,318 @@
 </directive>
 
 
+<directive name="lingering_close">
+<syntax><value>off</value> | <value>on</value> | <value>always</value></syntax>
+<default>on</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+<appeared-in>1.1.0</appeared-in>
+<appeared-in>1.0.6</appeared-in>
+
+<para>
+Управляет закрытием соединений с клиентами.
+</para>
+
+<para>
+Со значение по умолчанию “<value>on</value>” nginx будет
+<link id="lingering_timeout">ждать</link> и
+<link id="lingering_time">обрабатывать</link> дополнительные данные,
+поступающие от клиента, перед полным закрытием соединения, но только
+если эвристика указывает на то, что клиент может ещё послать данные.
+</para>
+
+<para>
+Со значением “<value>always</value>” nginx всегда будет
+ждать и обрабатывать дополнительные данные, поступающие от клиента.
+</para>
+
+<para>
+Со значением “<value>off</value>” nginx не будет ждать поступления
+дополнительных данных и сразу же закроет соединение.
+Это нарушает протокол, поэтому не следует это использовать без нужды.
+</para>
+
+</directive>
+
+
+<directive name="lingering_time">
+<syntax><argument>время</argument></syntax>
+<default>30s</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
+<para>
+Если действует <link id="lingering_close"/>,
+эта директива задаёт максимальное время, в течение которого nginx
+будет обрабатывать (читать и игнорировать) дополнительные данные,
+поступающие от клиента.
+По прошествии этого времени соединение будет закрыто, даже если
+будут ещё данные.
+</para>
+
+</directive>
+
+
+<directive name="lingering_timeout">
+<syntax><argument>время</argument></syntax>
+<default>5s</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
+<para>
+Если действует <link id="lingering_close"/>, эта директива задаёт
+максимальное время ожидания поступления дополнительных данных от клиента.
+Если в течение этого времени данные не были получены, соединение закрывается.
+Иначе данные читаются и игнорируются, затем nginx снова ждёт поступления данных.
+Цикл “ждать-читать-игнорировать” повторяется, но не дольше чем задано
+директивой <link id="lingering_time"/>.
+</para>
+
+</directive>
+
+
 <directive name="listen">
-<syntax><value>адрес:порт
-        [default|default_server|
-        [backlog=число |
-         rcvbuf=размер |
-         sndbuf=размер |
-         accept_filter=фильтр |
-         deferred |
-         bind |
-         ipv6only=[on|off] |
-         ssl]]
-</value></syntax>
+<syntax>
+        <argument>адрес</argument>[:<argument>порт</argument>]
+        [<parameter>default_server</parameter>]
+        [<parameter>setfib</parameter>=<argument>число</argument>]
+        [<parameter>backlog</parameter>=<argument>число</argument>]
+        [<parameter>rcvbuf</parameter>=<argument>размер</argument>]
+        [<parameter>sndbuf</parameter>=<argument>размер</argument>]
+        [<parameter>accept_filter</parameter>=<argument>фильтр</argument>]
+        [<parameter>deferred</parameter>]
+        [<parameter>bind</parameter>]
+        [<parameter>ipv6only</parameter>=<value>on</value>|<value>off</value>]
+        [<parameter>ssl</parameter>]
+        [<parameter>so_keepalive</parameter>=<value>on</value>|<value>off</value>|[<argument>keepidle</argument>]:[<argument>keepintvl</argument>]:[<argument>keepcnt</argument>]]</syntax>
+<syntax>
+        <argument>порт</argument>
+        [<parameter>default_server</parameter>]
+        [<parameter>setfib</parameter>=<argument>число</argument>]
+        [<parameter>backlog</parameter>=<argument>число</argument>]
+        [<parameter>rcvbuf</parameter>=<argument>размер</argument>]
+        [<parameter>sndbuf</parameter>=<argument>размер</argument>]
+        [<parameter>accept_filter</parameter>=<argument>фильтр</argument>]
+        [<parameter>deferred</parameter>]
+        [<parameter>bind</parameter>]
+        [<parameter>ipv6only</parameter>=<value>on</value>|<value>off</value>]
+        [<parameter>ssl</parameter>]
+        [<parameter>so_keepalive</parameter>=<value>on</value>|<value>off</value>|[<argument>keepidle</argument>]:[<argument>keepintvl</argument>]:[<argument>keepcnt</argument>]]</syntax>
+<syntax>
+        <value>unix:</value><argument>путь</argument>
+        [<parameter>default_server</parameter>]
+        [<parameter>backlog</parameter>=<argument>число</argument>]
+        [<parameter>rcvbuf</parameter>=<argument>размер</argument>]
+        [<parameter>sndbuf</parameter>=<argument>размер</argument>]
+        [<parameter>accept_filter</parameter>=<argument>фильтр</argument>]
+        [<parameter>deferred</parameter>]
+        [<parameter>bind</parameter>]
+        [<parameter>ssl</parameter>]
+        [<parameter>so_keepalive</parameter>=<value>on</value>|<value>off</value>|[<argument>keepidle</argument>]:[<argument>keepintvl</argument>]:[<argument>keepcnt</argument>]]</syntax>
 <default>*:80 | *:8000</default>
 <context>server</context>
 
 <para>
-Директива задаёт адрес и порт, на которых сервер принимает запросы.
-Можно указать только адрес или только порт, кроме того, адрес может
-быть именем сервера, например:
+Задаёт <argument>адрес</argument> и <argument>порт</argument> для IP
+или <argument>путь</argument> для UNIX-сокета,
+на которых сервер будет принимать запросы.
+Можно указать только <argument>адрес</argument>
+или только <argument>порт</argument>.
+Кроме того, <argument>адрес</argument> может быть именем хоста, например:
 <example>
-listen  127.0.0.1:8000;
-listen  127.0.0.1;
-listen  8000;
-listen  *:8000;
-listen  localhost:8000;
+listen 127.0.0.1:8000;
+listen 127.0.0.1;
+listen 8000;
+listen *:8000;
+listen localhost:8000;
 </example>
-адреса IPv6 (0.7.36) задаются в квадратных скобках:
+IPv6-адреса (0.7.36) задаются в квадратных скобках:
 <example>
-listen  [::]:8000;
-listen  [fe80::1];
+listen [::]:8000;
+listen [fe80::1];
+</example>
+UNIX-сокеты (0.8.21) задаются при помощи префикса “<code>unix:</code>”:
+<example>
+listen unix:/var/run/nginx.sock;
 </example>
 </para>
 
 <para>
-Если указан только адрес, то используется порт 80.
+Если указан только <argument>адрес</argument>, то используется порт 80.
+</para>
+
+<para>
+Если директива не указана, то используется либо <code>*:80</code>
+(если nginx работает с привилегиями суперпользователя),
+либо <code>*:8000</code>.
 </para>
 
 <para>
-Если директива не указана, то используется порт *:80, если nginx работает
-с правами пользователя root, или порт *:8000.
-</para>
-
-<para>
-Если у директивы есть параметр default, то сервер, в котором описана
-эта директива, будет сервером по умолчанию для указанной пары адрес:порт.
-Если же директив с параметром default нет, то сервером по умолчанию
-будет первый сервер, в котором описана пара адрес:порт.
-Начиная с версии 0.8.21, можно использовать параметр default_server.
+Если у директивы есть параметр <parameter>default_server</parameter>, то сервер,
+в котором описана эта директива, будет сервером по умолчанию для указанной пары
+<argument>адрес</argument>:<argument>порт</argument>.
+Если же директив с параметром <parameter>default_server</parameter> нет, то
+сервером по умолчанию будет первый сервер, в котором описана пара
+<argument>адрес</argument>:<argument>порт</argument>.
+адрес:порт.
+<note>
+До версии 0.8.21 этот параметр назывался просто
+<parameter>default</parameter>.
+</note>
 </para>
 
 <para>
-В директиве listen с параметром default можно также указать несколько
-параметров, специфичных для системных вызовов listen(2) и bind(2).
-Начиная с версии 0.8.21, эти параметры можно задать в любой директиве
-listen, но только один раз для указанной пары адрес:порт.
-<list type="bullet">
-
-<listitem>
-backlog=число — задаёт параметр backlog в вызове listen(2).
-По умолчанию backlog равен -1 для FreeBSD и 511 для всех остальных
-платформ.
-</listitem>
-
-<listitem>
-rcvbuf=размер — задаёт параметр SO_RCVBUF для слушающего сокета.
-</listitem>
-
-<listitem>
-sndbuf=размер — задаёт параметр SO_SNDBUF для слушающего сокета.
-</listitem>
-
-<listitem>
-accept_filter=фильтр — задаёт название accept-фильтра.
-Работает только на FreeBSD, можно использовать два фильтра — dataready
-и httpready.
-По сигналу -HUP accept-фильтр можно менять только в последних
-версиях FreeBSD, начиная с 6.0, 5.4-STABLE и 4.11-STABLE.
-</listitem>
-
-<listitem>
-deferred — указывает использовать отложенный accept(2) на Linux
-с помощью опции TCP_DEFER_ACCEPT.
-</listitem>
-
-<listitem>
-bind — указывает, что для данной пары адрес:порт нужно делать bind(2)
-отдельно.
-Дело в том, что если описаны несколько директив listen с одинаковым портом,
-но разными адресами и одна из директив listen слушает на всех адресах
-для данного порта (*:порт), то nginx сделает bind(2) только на *:порт.
-Необходимо учитывать, что в этом случае для определения адреса, на которой
-пришло соединение, делается системный вызов getsockname().
-Если же используются параметры backlog, rcvbuf, sndbuf, accept_filter
-или deferred, то для данной пары адрес:порт bind(2) всегда делается отдельно.
-</listitem>
-
-<listitem>
-ipv6only — параметр (0.7.42) задаёт значение параметра IPV6_V6ONLY
+В директиве <code>listen</code> можно также указать несколько
+дополнительных параметров, специфичных для системных вызовов
+<c-func>listen</c-func> и <c-func>bind</c-func>.
+Эти параметры можно задать в любой директиве <code>listen</code>,
+но только один раз для указанной пары
+<argument>адрес</argument>:<argument>порт</argument>.
+<note>
+До версии 0.8.21 их можно было указывать лишь в директиве
+<code>listen</code> с параметром <parameter>default</parameter>.
+</note>
+<list type="tag">
+
+<tag-name>
+<parameter>setfib</parameter>=<argument>число</argument>
+</tag-name>
+<tag-desc>
+этот параметр (0.8.44) задаёт для слушающего сокета соответствующую
+таблицу маршрутизации (FIB).
+В настоящий момент это работает только на FreeBSD.
+</tag-desc>
+
+<tag-name>
+<parameter>backlog</parameter>=<argument>число</argument>
+</tag-name>
+<tag-desc>
+задаёт параметр <parameter>backlog</parameter> в вызове
+<c-func>listen</c-func>.
+По умолчанию <parameter>backlog</parameter> равен -1 для FreeBSD
+и 511 для других платформ.
+</tag-desc>
+
+<tag-name>
+<parameter>rcvbuf</parameter>=<argument>размер</argument>
+</tag-name>
+<tag-desc>
+задаёт параметр <c-def>SO_RCVBUF</c-def> для слушающего сокета
+</tag-desc>
+
+<tag-name>
+<parameter>sndbuf</parameter>=<argument>размер</argument>
+</tag-name>
+<tag-desc>
+задаёт параметр <c-def>SO_SNDBUF</c-def> для слушающего сокета
+</tag-desc>
+
+<tag-name>
+<parameter>accept_filter</parameter>=<argument>фильтр</argument>
+</tag-name>
+<tag-desc>
+задаёт название accept-фильтра.
+Работает только на FreeBSD, можно использовать два фильтра —
+<value>dataready</value> и <value>httpready</value>.
+По сигналу <c-def>SIGHUP</c-def> accept-фильтр можно менять только в
+последних версиях FreeBSD, начиная с 6.0, 5.4-STABLE и 4.11-STABLE.
+</tag-desc>
+
+<tag-name>
+<parameter>deferred</parameter>
+</tag-name>
+<tag-desc>
+указывает использовать отложенный <c-func>accept</c-func> на Linux
+с помощью опции <c-def>TCP_DEFER_ACCEPT</c-def>.
+</tag-desc>
+
+<tag-name>
+<parameter>bind</parameter>
+</tag-name>
+<tag-desc>
+указывает, что для данной пары
+<argument>адрес</argument>:<argument>порт</argument> нужно делать
+<c-func>bind</c-func> отдельно.
+Дело в том, что если описаны несколько директив <code>listen</code>
+с одинаковым портом, но разными адресами и одна из директив
+<code>listen</code> слушает на всех адресах для данного порта
+(<code>*</code>:<argument>порт</argument>, то nginx сделает
+<c-func>bind</c-func> только на <code>*</code>:<argument>порт</argument>.
+Необходимо заметить, что в этом случае для определения адреса, на которой
+пришло соединение, делается системный вызов <c-func>getsockname</c-func>.
+Если же используются параметры <parameter>backlog</parameter>,
+<parameter>rcvbuf</parameter>, <parameter>sndbuf</parameter>,
+<parameter>accept_filter</parameter>, <parameter>deferred</parameter>
+или <parameter>so_keepalive</parameter>, то для данной пары
+<argument>адрес</argument>:<argument>порт</argument> всегда делается
+отдельный вызов <c-func>bind</c-func>.
+</tag-desc>
+
+<tag-name>
+<parameter>ipv6only</parameter>=<value>on</value>|<value>off</value>
+</tag-name>
+<tag-desc>
+параметр (0.7.42) задаёт значение параметра <c-def>IPV6_V6ONLY</c-def>
 для слушающего сокета.
 Установить этот параметр можно только один раз на старте.
-</listitem>
-
-<listitem>
-ssl — параметр (0.7.14) не имеет отношения к системным вызовам
-listen(2) и bind(2), а позволяет указать, что все соединения,
-принимаемые на этом порту, должны работать в режиме SSL.
+</tag-desc>
+
+<tag-name>
+<parameter>ssl</parameter>
+</tag-name>
+<tag-desc>
+этот параметр (0.7.14) не имеет отношения к системным вызовам
+<c-func>listen</c-func> и <c-func>bind</c-func>, а позволяет указать,
+что все соединения, принимаемые на этом порту, должны работать
+в режиме SSL.
 Это позволяет задать компактную конфигурацию для сервера,
-работающего сразу в двух режимах — HTTP и HTTPS.
+работающего сразу в двух режимах — HTTP и HTTPS.
 <example>
-listen  80;
-listen  443 default ssl;
+listen 80;
+listen 443 default ssl;
 </example>
-</listitem>
+</tag-desc>
+
+<tag-name>
+<parameter>so_keepalive</parameter>=<value>on</value>|<value>off</value>|[<argument>keepidle</argument>]:[<argument>keepintvl</argument>]:[<argument>keepcnt</argument>]
+</tag-name>
+<tag-desc>
+этот параметр (1.1.11) конфигурирует для слушающего сокета
+поведение “TCP keepalive”.
+Если этот параметр опущен, то для сокета будут действовать
+стандартные системные настройки.
+Если он установлен в значение “<value>on</value>”, то для сокета
+включается опция <c-def>SO_KEEPALIVE</c-def>.
+Если он установлен в значение “<value>off</value>”, то для сокета
+опция <c-def>SO_KEEPALIVE</c-def> выключается.
+Некоторые операционные системы поддерживают настройку параметров
+“TCP keepalive” на уровне сокета посредством опций
+<c-def>TCP_KEEPIDLE</c-def>, <c-def>TCP_KEEPINTVL</c-def> и
+<c-def>TCP_KEEPCNT</c-def>.
+На таких системах (в настоящий момент это Linux 2.4+ и NetBSD 5+)
+их можно сконфигурировать с помощью аргументов <argument>keepidle</argument>,
+<argument>keepintvl</argument> и <argument>keepcnt</argument>.
+Один или два аргумента могут быть опущены, в таком случае для
+соответствующей опции сокета будут действовать стандартные
+системные настройки.
+Например,
+<example>so_keepalive=30m::10</example>
+установит таймаут бездействия (<c-def>TCP_KEEPIDLE</c-def>) в 30 минут,
+для интервала проб (<c-def>TCP_KEEPINTVL</c-def>) будет действовать
+стандартная системная настройка, а счётчик проб (<c-def>TCP_KEEPCNT</c-def>)
+будет равен 10.
+</tag-desc>
 
 </list>
 </para>
 
 <para>
-Пример использования параметров:
+Пример:
 <example>
-listen  127.0.0.1 default accept_filter=dataready backlog=1024;
+listen 127.0.0.1 default accept_filter=dataready backlog=1024;
 </example>
 </para>
 
@@ -733,101 +1148,126 @@
 
 
 <directive name="location">
-<syntax block="yes">[<value>=|~|~*|^~|@</value>] <value>/uri/</value>
+<syntax block="yes">[
+        <value>=</value> |
+        <value>~</value> |
+        <value>~*</value> |
+        <value>^~</value>
+        ] <argument>uri</argument>
 </syntax>
+<syntax block="yes"><value>@</value><argument>имя</argument></syntax>
 <default/>
 <context>server</context>
+<context>location</context>
 
 <para>
-Директива устанавливает конфигурацию в зависимости от URI запроса.
-location можно задать обычной строкой или регулярным выражением.
-Регулярные выражения задаются префиксом "~*" — без учёта регистра
-символов, и "~" — с учётом.
-Для определения соответствия location'а и запроса
-сначала проверяются location'ы, заданные обычными строками.
+Устанавливает конфигурацию в зависимости от URI запроса.
+location можно задать префиксной строкой или регулярным выражением.
+Регулярные выражения задаются либо с префиксом “<value>~*</value>”
+(для поиска совпадения без учёта регистра символов),
+либо с префиксом “<value>~</value>” (с учётом регистра).
+Чтобы найти location, соответствующий запросу, вначале проверяются
+location'ы, заданные префиксными строками (префиксные location'ы).
 Среди них ищется максимальное совпадение.
-Затем проверяются регулярные выражения.
-В отличие от обычных строк, они не сортируются, а проверяются в порядке
-их следования в конфигурационном файле.
-Проверка регулярных выражений прекращается после первого же совпадения.
+Затем проверяются регулярные выражения, в порядке их следования
+в конфигурационном файле.
+Проверка регулярных выражений прекращается после первого же совпадения,
+и используется соответствующая конфигурация.
 Если совпадение с регулярным выражением не найдено, то используется
-конфигурация максимально совпавшего location'а.
+конфигурация максимально совпавшего префиксного location'а.
 </para>
 
 <para>
-Для операционных систем, не чувствительных к регистру символов, таких
-как Mac OS X и Cygwin, проверка обычных строк делается без учёта
-регистра (0.7.7).
+location'ы могут быть вложенными, с некоторыми исключениями,
+о которых говорится ниже.
+</para>
+
+<para>
+Для операционных систем, нечувствительных к регистру символов, таких
+как Mac OS X и Cygwin, сравнение с префиксными строками производится
+без учёта регистра (0.7.7).
 Однако, сравнение ограничено только однобайтными locale'ями.
 </para>
 
 <para>
-Регулярное выражение может содержать выделения (0.7.40), которые
-могут затем использоваться в других директивах.
+Регулярные выражения могут содержать выделения (0.7.40), которые могут
+затем использоваться в других директивах.
 </para>
 
 <para>
-Если нужно запретить проверку регулярных выражений после проверки
-обычных строк, то это можно сделать с помощью префикса "^~".
-Если у максимально совпавшего location'а есть этот префикс, то
-регулярные выражения не проверяются.
+Если у максимального совпавшего префиксного location'а указан префикс
+“<value>^~</value>”, то регулярные выражения не проверяются.
 </para>
 
 <para>
-Кроме того, с помощью префикса "=" можно задать точное совпадение
-URI и location. При совпадении поиск сразу же прекращается, так как
-дальше искать не имеет смысла. Например, если запрос "/" очень частый,
-то указав "location = /", можно ускорить обработку этого запроса,
-так как поиск location прекратится после первого же сравнения.
+Кроме того, с помощью префикса “<value>=</value>” можно задать точное
+совпадение URI и location.
+При точном совпадении поиск сразу же прекращается.
+Например, если запрос “<code>/</code>” случается часто, то
+указав “<code>location = /</code>”, можно ускорить обработку
+этих запросов, так как поиск прекратится после первого же сравнения.
+Очевидно, что такой location не может иметь вложенные location'ы.
 </para>
 
 <para>
-В версиях с 0.7.1 по 0.8.41, если запрос точно совпал с обычным location'ом
-без префиксов "=" и "^~", то поиск тоже сразу же прекращается и
-регулярные выражения также не проверяются.
+<note>
+В версиях с 0.7.1 по 0.8.41, если запрос точно совпал с префиксным
+location'ом без префиксов “<value>=</value>” и “<value>^~</value>”,
+то поиск тоже сразу же прекращается и регулярные выражения также
+не проверяются.
+</note>
 </para>
 
 <para>
 Проиллюстрируем вышесказанное примером:
 <example>
-location  = / {
-    [ конфигурация A ]
+location = / {
+    [ конфигурация А ]
 }
 
-location  / {
-    [ конфигурация B ]
+location / {
+    [ конфигурация Б ]
 }
 
 location ^~ /images/ {
-    [ конфигурация C ]
+    [ конфигурация В ]
 }
 
 location ~* \.(gif|jpg|jpeg)$ {
-    [ конфигурация D ]
+    [ конфигурация Г ]
 }
 </example>
-Для запроса "/" будет выбрана конфигурация A,
-для запроса "/documents/document.html" — конфигурация B,
-для запроса "/images/1.gif" — конфигурация C,
-для запроса "/documents/1.jpg" — конфигурация D.
+Для запроса “<code>/</code>” будет выбрана конфигурация А,
+для запроса “<code>/documents/document.html</code>” — конфигурация Б,
+для запроса “<code>/images/1.gif</code>” — конфигурация В,
+а для запроса “<code>/documents/1.jpg</code>” — конфигурация Г.
 </para>
 
 <para>
-Префикс "@" задаёт именованный location. Такой location не используется
-при обычной обработке запросов, а предназначен только для перенаправления
-в него запросов.
+Префикс “<value>@</value>” задаёт именованный location.
+Такой location не используется при обычной обработке запросов, а
+предназначен только для перенаправления в него запросов.
+Такие location'ы не могут быть вложенными и не могут содержать
+вложенные location'ы.
 </para>
 
+<!--
+<migration from="Apache" directive="Location" />
+-->
+
 </directive>
 
 
 <directive name="log_not_found">
-<syntax><value>[on|off]</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>on</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива разрешает или запрещает записывать в error_log
+Разрешает или запрещает записывать в
+<link doc="../ngx_core_module.xml" id="error_log"/>
 ошибки о том, что файл не найден.
 </para>
 
@@ -835,12 +1275,14 @@
 
 
 <directive name="log_subrequest">
-<syntax><value>[on|off]</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>off</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива разрешает или запрещает записывать в
+Разрешает или запрещает записывать в
 <link doc="ngx_http_log_module.xml" id="access_log"/>
 подзапросы.
 </para>
@@ -848,51 +1290,74 @@
 </directive>
 
 
+<directive name="max_ranges">
+<syntax><argument>число</argument></syntax>
+<default/>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
+<para>
+Ограничивает максимальное допустимое число диапазонов в запросах с
+указанием диапазона запрашиваемых байт (byte-range requests).
+Запросы, превышающие указанное ограничение, обрабатываются как
+если бы они не содержали указания диапазонов.
+По умолчанию ограничения нет.
+Значение 0 полностью запрещает поддержку диапазонов.
+</para>
+
+</directive>
+
+
 <directive name="merge_slashes">
-<syntax><value>[on|off]</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>on</default>
-<context>http, server</context>
+<context>http</context>
+<context>server</context>
 
 <para>
-Директива разрешает или запрещает объединять в URI два и более слэшей в один.
+Разрешает или запрещает преобразование URI путём замены двух и более подряд
+идущих слэшей (“<code>/</code>”) в один.
 </para>
 
 <para>
-Необходимо иметь ввиду, что это объединение необходимо для корректной
-проверки location'ов и регулярных выражений.
-Например, запрос "//scripts/one.php" не попадает в
+Необходимо иметь ввиду, что это преобразование необходимо для корректной
+проверки префиксных строк и регулярных выражений.
+Если его не делать, то запрос “<code>//scripts/one.php</code>” не попадёт в
 <example>
 location /scripts/ {
     ...
 }
 </example>
-и может быть обслужен как статический файл,
-поэтому он приводится в "/scripts/one.php".
+и может быть обслужен как статический файл.
+Поэтому он преобразуется к виду “<code>/scripts/one.php</code>”.
 </para>
 
 <para>
-Выключение объединения может понадобиться, если в URI используются имена,
-закодированные методом base64, который использует символ "/".
-Но по соображениям безопасности лучше избегать выключения объединения.
+Запрет преобразования может понадобиться, если в URI используются имена,
+закодированные методом base64, в котором задействован символ “<code>/</code>”.
+Однако по соображениям безопасности лучше избегать отключения преобразования.
 </para>
 
 <para>
-Если директива указана на уровне server в сервере по умолчанию,
-то её значение распространяется на все виртуальные сервера, слушающие
-на том же адресе и порту.
+Если директива указана на уровне
+<link id="server"/>
+в сервере по умолчанию, то её значение распространяется на
+все виртуальные сервера, слушающие на том же адресе и порту.
 </para>
 
 </directive>
 
 
 <directive name="msie_padding">
-<syntax><value>[on|off]</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>on</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива разрешает или запрещает добавлять в ответы для MSIE
-со статусом больше 400
+Разрешает или запрещает добавлять в ответы для MSIE со статусом больше 400
 комментарий для увеличения размера ответа до 512 байт.
 </para>
 
@@ -900,26 +1365,33 @@
 
 
 <directive name="msie_refresh">
-<syntax><value>[on|off]</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>off</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива разрешает или запрещает выдавать для MSIE refresh'ы вместо
-редиректов.
+Разрешает или запрещает выдавать для MSIE клиентов refresh'ы вместо
+перенаправлений.
 </para>
 
 </directive>
 
 
 <directive name="open_file_cache">
-<syntax><value>max=N [inactive=время]|off</value>
+<syntax><value>off</value></syntax>
+<syntax>
+<parameter>max</parameter>=<argument>N</argument>
+[<parameter>inactive</parameter>=<argument>время</argument>]
 </syntax>
 <default>off</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива задаёт кэш, в котором могут хранится
+Задаёт кэш, в котором могут храниться:
 <list type="bullet">
 
 <listitem>
@@ -931,43 +1403,57 @@
 </listitem>
 
 <listitem>
-информация об ошибках поиска файла — нет файла, нет прав на чтение
-и тому подобное. Кэширование ошибок нужно разрешить директивой
+информация об ошибках поиска файла — “нет файла”, “нет прав на чтение”
+и тому подобное.
+<note>
+Кэширование ошибок нужно разрешить отдельно директивой
 <link id="open_file_cache_errors"/>.
+</note>
 </listitem>
 
 </list>
 </para>
 
 <para>
-Параметры директивы:
-<list type="bullet">
-
-<listitem>
-max — задаёт максимальное число элементов в кэше;
+У директивы есть следующие параметры:
+<list type="tag">
+
+<tag-name>
+<parameter>max</parameter>
+</tag-name>
+<tag-desc>
+задаёт максимальное число элементов в кэше;
 при переполнении кэша удаляются наиболее давно не используемые элементы (LRU);
-</listitem>
-
-<listitem>
-inactive — задаёт время, после которого элемент кэша удаляется,
-если к нему не было обращений в течение этого времени;
-по умолчанию 60 секунд;
-</listitem>
-
-<listitem>
-off — запрещает кэш.
-</listitem>
+</tag-desc>
+
+<tag-name>
+<parameter>inactive</parameter>
+</tag-name>
+<tag-desc>
+задаёт время, после которого элемент кэша удаляется, если к нему
+не было обращений в течение этого времени; по умолчанию 60 секунд;
+</tag-desc>
+
+<tag-name>
+<value>off</value>
+</tag-name>
+<tag-desc>
+запрещает кэш.
+</tag-desc>
 
 </list>
 </para>
 
 <para>
-Пример использования:
+Пример:
 <example>
-open_file_cache          max=1000  inactive=20s;
+open_file_cache          max=1000 inactive=20s;
 open_file_cache_valid    30s;
 open_file_cache_min_uses 2;
 open_file_cache_errors   on;
+<!--
+open_file_cache_events   on;
+-->
 </example>
 </para>
 
@@ -975,100 +1461,167 @@
 
 
 <directive name="open_file_cache_errors">
-<syntax><value>on|off</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>off</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива определяет, кэшировать или нет ошибки поиска файлов в
+Разрешает или запрещает кэширование ошибок поиска файлов в
 <link id="open_file_cache"/>.
 </para>
 
 </directive>
 
 
-<directive name="open_file_cache_min_uses">
-<syntax><value>число</value></syntax>
-<default>1</default>
-<context>http, server, location</context>
+<!--
+
+<directive name="open_file_cache_events">
+<syntax><value>on</value> | <value>off</value></syntax>
+<default>off</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива определяет минимальное число использований файла в течение
-времени, заданного параметром inactive в директиве
-<link id="open_file_cache"/>, после которого дескриптор файла
-будет оставаться открытым в кэше.
+Разрешает использование событий ядра для проверки актуальности элементов
+<link id="open_file_cache"/>.
+Эта директива работает только совместно с методом
+<link doc="../events.xml" id="kqueue"/>.
+Заметьте, что только NetBSD&nbsp;2.0+ и FreeBSD&nbsp;6.0+
+поддерживают события для файловых систем произвольного типа.
+Другие операционные системы поддерживают события только для
+основных файловых систем, таких как UFS или FFS.
+</para>
+
+</directive>
+
+-->
+
+
+<directive name="open_file_cache_min_uses">
+<syntax><argument>число</argument></syntax>
+<default>1</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
+<para>
+Задаёт минимальное <argument>число</argument> обращений к файлу
+в течение времени, заданного параметром <parameter>inactive</parameter>
+директивы <link id="open_file_cache"/>, после которого дескриптор
+файла будет оставаться открытым в кэше.
 </para>
 
 </directive>
 
 
 <directive name="open_file_cache_valid">
-<syntax><value>время</value></syntax>
-<default>60</default>
-<context>http, server, location</context>
+<syntax><argument>время</argument></syntax>
+<default>60s</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива определяет, через какое время нужно проверять актуальность
-информации об элементе в <link id="open_file_cache"/>.
-
+Определяет время, через которое следует проверять актуальность информации
+об элементе в
+<link id="open_file_cache"/>.
+<!--
+При включенном
+<link id="open_file_cache_events"/>
+открытые дескрипторы файлов проверяются лишь единожды, а затем обновляются
+по факту их изменения.
+-->
 </para>
 
 </directive>
 
 
 <directive name="optimize_server_names">
-<syntax><value>[on|off]</value></syntax>
-<default>on</default>
-<context>http, server</context>
-
-<para>
-Устаревшая директива.
-</para>
+<syntax><value>on</value> | <value>off</value></syntax>
+<default>off</default>
+<context>http</context>
+<context>server</context>
 
 <para>
-Директива разрешает или запрещает оптимизировать проверку имени хоста
-в name-based виртуальных серверах.
-Проверка в частности влияет на имя хоста, используемого в редиректах.
+Директива устарела, вместо неё следует использовать директиву
+<link id="server_name_in_redirect"/>.
+</para>
+
+<!--
+<para>
+Разрешает или запрещает оптимизировать проверку имени хоста в name-based
+виртуальных серверах.
+Проверка в частности влияет на имя хоста, используемого в перенаправлениях.
 Если оптимизация разрешена и все name-based сервера, слушающие на одной
-паре адрес:порт, имеют одинаковую конфигурацию, то во время исполнения
-запроса имена не проверяются и в редиректах используется первое имя сервера.
-Если в редиректе нужно использовать имя хоста, переданное клиентом,
+паре адрес:порт, имеют одинаковую конфигурацию, то во время исполнения запроса
+имена не проверяются и в перенаправлениях используется первое имя сервера.
+Если в перенаправлении нужно использовать имя хоста, переданное клиентом,
 то оптимизацию нужно выключить.
 </para>
+-->
 
 </directive>
 
 
 <directive name="port_in_redirect">
-<syntax><value>[on|off]</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>on</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
+<para>
+Разрешает или запрещает указывать порт в перенаправлениях, выдаваемых nginx'ом.
+</para>
 
 <para>
-Директива разрешает или запрещает указывать порт в редиректах,
-выдаваемых nginx'ом.
+См. также директиву <link id="server_name_in_redirect"/>.
+</para>
+
+</directive>
+
+
+<directive name="postpone_output">
+<syntax><argument>размер</argument></syntax>
+<default>1460</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
+<para>
+Если это возможно, то отправка данных клиенту будет отложена пока nginx не
+накопит по крайней мере указанное количество байт для отправки.
+Значение 0 запрещает отложенную отправку данных.
 </para>
 
 </directive>
 
 
 <directive name="read_ahead">
-<syntax><value>размер</value></syntax>
+<syntax><argument>размер</argument></syntax>
 <default>0</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива задаёт ядру размер предчтения при работе с файлами.
-Под Линуксом используется системный вызов
-<example>
-posix_fadvise(0, 0, 0, POSIX_FADV_SEQUENTIAL);
-</example>
-поэтому размер игнорируется.
+Задаёт ядру размер предчтения при работе с файлами.
 </para>
 
 <para>
-Под FreeBSD используется fcntl(O_READAHEAD, размер), появившийся
-во FreeBSD-9 CURRENT. Для FreeBSD 7 нужно установить
+На Linux используется системный вызов
+<code>posix_fadvise(0, 0, 0, POSIX_FADV_SEQUENTIAL)</code>,
+поэтому аргумент <argument>размер</argument> там игнорируется.
+</para>
+
+<para>
+На FreeBSD используется системный вызов
+<code>fcntl(O_READAHEAD,</code><argument>размер</argument><code>)</code>,
+появившийся во FreeBSD&nbsp;9.0-CURRENT.
+Для FreeBSD&nbsp;7 необходимо установить
 <link url="http://sysoev.ru/freebsd/patch.readahead.txt">патч</link>.
 </para>
 
@@ -1076,64 +1629,113 @@
 
 
 <directive name="recursive_error_pages">
-<syntax><value>[on|off]</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>off</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива разрешает или запрещает делать несколько перенаправлений через
-директиву <link id="error_page"/>.
+Разрешает или запрещает делать несколько перенаправлений через директиву
+<link id="error_page"/>.
+</para>
+
+</directive>
+
+
+<directive name="request_pool_size">
+<syntax><argument>размер</argument></syntax>
+<default>4k</default>
+<context>http</context>
+<context>server</context>
+
+<para>
+Позволяет производить точную настройку выделений памяти
+под конкретные запросы.
+Эта директива не оказывает существенного влияния на
+производительность и её не следует использовать.
 </para>
 
 </directive>
 
 
 <directive name="reset_timedout_connection">
-<syntax><value>[on|off]</value></syntax>
+<syntax>
+        <value>on</value> | <value>off</value></syntax>
 <default>off</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива разрешает или запрещает сбрасывать соединение по таймауту.
-Сброс делается следующим образом — перед закрытием сокета для него
-ставится опция SO_LINGER с таймаутом 0. После чего при закрытии сокета
-клиенту отсылается пакет RST, а всё память, связанная с этим сокетом,
-освобождается. Это позволяет избежать длительного нахождения уже закрытого
-сокета в состоянии FIN_WAIT1 с заполненными буферами.
+Разрешает или запрещает сброс соединений по таймауту.
+Сброс делается следующим образом — перед закрытием сокета для него
+ставится опция
+<c-def>SO_LINGER</c-def>
+с таймаутом 0.
+После чего при закрытии сокета клиенту отсылается TCP RST, а вся память,
+связанная с этим сокетом, освобождается.
+Это позволяет избежать длительного нахождения уже закрытого сокета в
+состоянии FIN_WAIT1 с заполненными буферами.
 </para>
 
 <para>
-Необходимо отметить, что соединения, находящиеся в состоянии keepalive,
-по истечении таймаута закрываются обычным образом.
+Необходимо отметить, что keep-alive соединения по истечении таймаута
+закрываются обычным образом.
 </para>
 
 </directive>
 
 
 <directive name="resolver">
-<syntax><value>адрес</value></syntax>
+<syntax>
+<argument>адрес</argument> ...
+[<parameter>valid</parameter>=<argument>время</argument>]
+</syntax>
 <default/>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива задаёт адрес name-сервера, например:
+Задаёт серверы DNS, используемые для преобразования имён апстрим серверов
+в адреса, например:
 <example>
-    resolver   127.0.0.1;
+resolver 127.0.0.1 192.0.2.1;
 </example>
+Аргумент <argument>адрес</argument> может быть задан либо
+IPv4-адресом, либо именем хоста;
+во втором случае используется первый полученный IPv4-адрес.
+Серверы DNS опрашиваются циклически.
+<note>
+До версии 1.1.7 можно было задать лишь один DNS-сервер.
+</note>
+По умолчанию nginx кэширует ответы, используя значение TTL из ответа.
+Необязательный параметр <parameter>valid</parameter> позволяет это
+переопределить:
+<example>
+resolver 127.0.0.1 192.0.2.1 valid=30s;
+</example>
+<note>
+До версии 1.1.9 настройка времени кэширования была невозможна
+и nginx всегда кэшировал ответы на срок в 5 минут.
+</note>
 </para>
 
 </directive>
 
 
 <directive name="resolver_timeout">
-<syntax><value>время</value></syntax>
+<syntax><argument>время</argument></syntax>
 <default>30s</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива задаёт таймаут для определения имени, например:
+Задаёт таймаут для преобразования имени в адрес, например:
 <example>
-    resolver_timeout   5s;
+resolver_timeout 5s;
 </example>
 </para>
 
@@ -1141,28 +1743,34 @@
 
 
 <directive name="root">
-<syntax><value>путь</value></syntax>
+<syntax><argument>путь</argument></syntax>
 <default>html</default>
-<context>http, server, location, if в location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+<context>if в location</context>
 
 <para>
-Директива задаёт корневой каталог для запросов.
+Задаёт корневой каталог для запросов.
 Например, при такой конфигурации
 <example>
-    location  /i/ {
-        root  /data/w3;
-    }
+location /i/ {
+    root /data/w3;
+}
 </example>
-на запрос "/i/top.gif" будет отдан файл "/data/w3/i/top.gif".
+в ответ на запрос “<code>/i/top.gif</code>” будет отдан файл
+<path>/data/w3/i/top.gif</path>.
 </para>
 
 <para>
-В значении пути можно использовать переменные.
+В значении аргумента <argument>путь</argument> можно использовать переменные,
+кроме <var>$document_root</var> и <var>$realpath_root</var>.
 </para>
 
 <para>
-Путь к файлу формируется как простое добавление URI к значению директивы root.
-Если же необходима модификация URI, то нужно воспользоваться директивой
+Путь к файлу формируется путём простого добавления URI к значению директивы
+<code>root</code>.
+Если же URI необходимо поменять, следует воспользоваться директивой
 <link id="alias"/>.
 </para>
 
@@ -1170,23 +1778,31 @@
 
 
 <directive name="satisfy">
-<syntax><value>all|any</value></syntax>
+<syntax><value>all</value> | <value>any</value></syntax>
 <default>all</default>
+<context>http</context>
+<context>server</context>
 <context>location</context>
 
 <para>
-Директива разрешает доступ при хотя бы одной успешной проверке,
-выполненной модулями <link doc="ngx_http_access_module.xml">ngx_http_access_module</link>
-или <link doc="ngx_http_auth_basic_module.xml">ngx_http_auth_basic_module</link>:
+Разрешает доступ, если оба (<value>all</value>)
+или хотя бы один (<value>any</value>) из модулей
+<link doc="ngx_http_access_module.xml">ngx_http_access_module</link>
+и <link doc="ngx_http_auth_basic_module.xml">ngx_http_auth_basic_module</link>
+разрешают доступ.
+</para>
+
+<para>
+Пример:
 <example>
 location / {
-    satisfy  any;
-
-    allow  192.168.1.0/32;
-    deny   all;
-
-    auth_basic            "closed site";
-    auth_basic_user_file  conf/htpasswd;
+    satisfy any;
+
+    allow 192.168.1.0/32;
+    deny  all;
+
+    auth_basic           "closed site";
+    auth_basic_user_file conf/htpasswd;
 }
 </example>
 </para>
@@ -1195,40 +1811,91 @@
 
 
 <directive name="satisfy_any">
-<syntax><value>on|off</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>off</default>
+<context>http</context>
+<context>server</context>
 <context>location</context>
 
 <para>
-Директива переименована в директиву <link id="satisfy"/>.
+Эта директива была переименована в директиву
+<link id="satisfy">satisfy any</link>.
+</para>
+
+</directive>
+
+
+<directive name="send_lowat">
+<syntax><argument>размер</argument></syntax>
+<default>0</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
+<para>
+При установке в ненулевое значение nginx будет пытаться минимизировать
+число операций отправки на клиентских сокетах либо при помощи флага
+<c-def>NOTE_LOWAT</c-def> метода
+<link doc="../events.xml" id="kqueue"/>,
+либо при помощи опции сокета <c-def>SO_SNDLOWAT</c-def>,
+с указанным размером.
+</para>
+
+<para>
+Эта директива игнорируется на Linux, Solaris и Windows.
 </para>
 
 </directive>
 
 
 <directive name="send_timeout">
-<syntax><value>время</value></syntax>
-<default>60</default>
-<context>http, server, location</context>
+<syntax><argument>время</argument></syntax>
+<default>60s</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива задаёт таймаут при передаче ответа клиенту.
+Задаёт таймаут при передаче ответа клиенту.
 Таймаут устанавливается не на всю передачу ответа,
 а только между двумя операциями записями.
 Если по истечении этого времени клиент ничего не примет,
-то nginx закрывает соединение.
+соединение будет закрыто.
 </para>
 
 </directive>
 
 
 <directive name="sendfile">
-<syntax><value>[on|off]</value></syntax>
+
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>off</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+<context>if в location</context>
 
 <para>
-Директива разрешает или запрещает использовать sendfile().
+Разрешает или запрещает использовать
+<c-func>sendfile</c-func>.
+</para>
+
+</directive>
+
+
+<directive name="sendfile_max_chunk">
+
+<syntax><argument>размер</argument></syntax>
+<default>0</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
+<para>
+При установке в ненулевое значение ограничивает объём данных,
+который может передан за один вызов <c-func>sendfile</c-func>.
+Без этого ограничения одно быстрое соединение может целиком
+захватить рабочий процесс.
 </para>
 
 </directive>
@@ -1240,14 +1907,14 @@
 <context>http</context>
 
 <para>
-Директива задаёт конфигурацию для виртуального сервера.
-Чёткого разделения виртуальных серверов ip-based (на основании ip-адреса)
-и name-based (на основании имени, передаваемого в строке "Host"
-заголовка запроса), нет.
-Вместо этого директивами <link id="listen"/> описываются все адреса
-и порты, на которых нужно принимать соединения для этого сервера,
-и в директиве <link id="server_name"/> указываются все имена серверов.
-Пример конфигурации описан в <link doc="../virtual_hosts.xml">
+Задаёт конфигурацию для виртуального сервера.
+Чёткого разделения виртуальных серверов на IP-based (на основании IP-адреса)
+и name-based (на основании поля <header>Host</header> заголовка запроса) нет.
+Вместо этого директивами <link id="listen"/> описываются все
+адреса и порты, на которых нужно принимать соединения для этого сервера,
+а в директиве <link id="server_name"/> указываются все имена серверов.
+Пример конфигурации описан в документе по
+<link doc="../virtual_hosts.xml">
 настройке виртуальных серверов</link>.
 </para>
 
@@ -1255,27 +1922,26 @@
 
 
 <directive name="server_name">
-<syntax><value>имя [...]</value></syntax>
-<default>hostname</default>
+<syntax><argument>имя</argument> ...</syntax>
+<default>""</default>
 <context>server</context>
 
 <para>
-Директива задаёт имена виртуального сервера, например:
+Задаёт имена виртуального сервера, например:
 <example>
 server {
-    server_name   example.com  www.example.com;
+    server_name example.com www.example.com;
 }
 </example>
 </para>
 
 <para>
 Первое имя становится основным именем сервера.
-По умолчанию используется имя машины (hostname).
-В именах серверов можно использовать "*" для замены первой или последней
-части имени:
+В именах серверов можно использовать звёздочку (“<code>*</code>”)
+для замены первой или последней части имени:
 <example>
 server {
-    server_name   example.com  *.example.com  www.example.*;
+    server_name example.com *.example.com www.example.*;
 }
 </example>
 </para>
@@ -1284,94 +1950,103 @@
 Два первых вышеприведённых имени можно объединить в одно:
 <example>
 server {
-    server_name   .example.com;
-}
-</example>
-</para>
-
-<para>
-Кроме того, в качестве имени сервера можно использовать регулярное
-выражение, указав перед ним "~":
-<example>
-server {
-    server_name   www.example.com   ~^www\d+\.example\.com$;
+    server_name .example.com;
 }
 </example>
 </para>
 
 <para>
-Регулярное выражение может содержать выделения (0.7.40), которые
-могут затем использоваться в других директивах:
+Если аргумент равен “<var>$hostname</var>” (0.9.4), то
+подставляется имя хоста (hostname) машины.
+</para>
+
+<para>
+В качестве имени сервера можно также использовать регулярное выражение,
+указав перед ним тильду (“<code>~</code>”):
 <example>
 server {
-    server_name   ~^(www\.)?(.+)$;
+    server_name www.example.com ~^www\d+\.example\.com$;
+}
+</example>
+</para>
+
+<para>
+Регулярное выражение может содержать выделения (0.7.40),
+которые могут затем использоваться в других директивах:
+<example>
+server {
+    server_name ~^(www\.)?(.+)$;
 
     location / {
-        root  /sites/$2;
+        root /sites/$2;
     }
 }
 
 server {
-    server_name   _;
+    server_name _;
 
     location / {
-        root  /sites/default;
+        root /sites/default;
     }
 }
 </example>
 </para>
 
 <para>
-Начиная с 0.8.25, именованные выделения в регулярном выражении создают
-переменные, которые могут затем использоваться в других директивах:
+Именованные выделения в регулярном выражении создают переменные (0.8.25),
+которые могут затем использоваться в других директивах:
 <example>
 server {
-    server_name   ~^(www\.)?(<emphasis>?&lt;domain&gt;</emphasis>.+)$;
+    server_name ~^(www\.)?(?&lt;domain&gt;.+)$;
 
     location / {
-        root  /sites/<emphasis>$domain</emphasis>;
+        root /sites/$domain;
     }
 }
 
 server {
-    server_name   _;
+    server_name _;
 
     location / {
-        root  /sites/default;
+        root /sites/default;
     }
 }
 </example>
 </para>
 
 <para>
-Начиная с 0.7.11, можно использовать пустое имя "":
+Возможно также указать пустое имя сервера (0.7.11):
 <example>
 server {
-    server_name   www.example.com   "";
+    server_name www.example.com "";
 }
 </example>
-что позволяет обрабатывать запросы без строки "Host" в заголовке запроса
-в этом сервере, а не в сервере по умолчанию для данной пары адрес:порт.
+Это позволяет обрабатывать запросы без поля <header>Host</header> заголовка
+запроса в этом сервере, а не в сервере по умолчанию для данной пары адрес:порт.
+Это настройка по умолчанию.
+<note>
+До 0.8.48 по умолчанию использовалось имя хоста (hostname) машины.
+</note>
 </para>
 
 <para>
 Порядок проверки имён следующий:
-<list type="bullet">
+<list type="enum">
 
 <listitem>
-полные имена,
+полные имена
 </listitem>
 
 <listitem>
-имена с маской в начале имени — *.example.com,
+имена с маской в начале имени, например “<code>*.example.com</code>”
 </listitem>
 
 <listitem>
-имена с маской в конце имени — mail.*,
+имена с маской в конце имени, например “<code>mail.*</code>”
 </listitem>
 
 <listitem>
-регулярные выражения.
+регулярные выражения
 </listitem>
 
 </list>
@@ -1381,71 +2056,81 @@
 
 
 <directive name="server_name_in_redirect">
-<syntax><value>[on|off]</value></syntax>
-<default>on</default>
-<context>http, server, location</context>
+<syntax><value>on</value> | <value>off</value></syntax>
+<default>off</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива разрешает или запрещает использовать в редиректах, выдаваемых
-nginx'ом, основное имя сервера, задаваемое директивой
+Разрешает или запрещает использовать в перенаправлениях, выдаваемых nginx'ом,
+основное имя сервера, задаваемое директивой
 <link id="server_name"/>.
-Если использование основного имени запрещено, то используется имя,
-указанного в строке "Host" в заголовке запроса.
-Если же этой строки нет, то используется IP-адрес сервера.
+Если запрещено, то используется имя, указанное в поле <header>Host</header>
+заголовка запроса.
+Если же этого поля нет, то используется IP-адрес сервера.
 </para>
 
-</directive>
-
-
-<directive name="server_names_hash_max_size">
-<syntax><value>число</value></syntax>
-<default>512</default>
-<context>http</context>
-
 <para>
-Директива задаёт максимальный размер хэш-таблиц имён серверов.
-Подробнее смотри в <link doc="../hash.xml">описании
-настройки хэшей</link>.
+См. также директиву <link id="port_in_redirect"/>.
 </para>
 
 </directive>
 
 
 <directive name="server_names_hash_bucket_size">
-<syntax><value>число</value></syntax>
-<default>32/64/128</default>
+<syntax><argument>размер</argument></syntax>
+<default>32|64|128</default>
 <context>http</context>
 
 <para>
-Директива задаёт размер корзины в хэш-таблицах имён серверов.
+Задаёт размер корзины в хэш-таблицах имён серверов.
 Значение по умолчанию зависит от размера строки кэша процессора.
-Подробнее смотри в <link doc="../hash.xml">описании
-настройки хэшей</link>.
+Подробнее смотрите в документе по
+<link doc="../hash.xml">настройке хэшей</link>.
+</para>
+
+</directive>
+
+
+<directive name="server_names_hash_max_size">
+<syntax><argument>размер</argument></syntax>
+<default>512</default>
+<context>http</context>
+
+<para>
+Задаёт максимальный <argument>размер</argument> хэш-таблиц имён серверов.
+Подробнее смотрите в документе по
+<link doc="../hash.xml">настройке хэшей</link>.
 </para>
 
 </directive>
 
 
 <directive name="server_tokens">
-<syntax><value>[on|off]</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>on</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива разрешает или запрещает выдавать версию nginx'а
-в сообщениях об ошибках и в строке заголовка ответа "Server".
+Разрешает или запрещает выдавать версию nginx'а в сообщениях об ошибках и
+в поле <header>Server</header> заголовка ответа.
 </para>
 
 </directive>
 
 
 <directive name="tcp_nodelay">
-<syntax><value>[on|off]</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>on</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива разрешает или запрещает использовать опцию TCP_NODELAY.
+Разрешает или запрещает использование опции <c-def>TCP_NODELAY</c-def>.
 Опция включаются только при переходе соединения в состояние keep-alive.
 </para>
 
@@ -1453,24 +2138,27 @@
 
 
 <directive name="tcp_nopush">
-<syntax><value>[on|off]</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>off</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива разрешает или запрещает использовать опции
-TCP_NOPUSH во FreeBSD или TCP_CORK в Linux.
+Разрешает или запрещает использование опции сокета
+<c-def>TCP_NOPUSH</c-def> во FreeBSD или
+<c-def>TCP_CORK</c-def> в Linux.
 Опции включаются только при использовании <link id="sendfile"/>.
 Включение опции позволяет
 <list type="bullet">
 
 <listitem>
-передавать заголовок ответа и начало файла в одном пакете в Linux
-и во FreeBSD 4.x;
+передавать заголовок ответа и начало файла в одном пакете
+в Linux и во FreeBSD&nbsp;4.*;
 </listitem>
 
 <listitem>
-передавать файл в полных пакетах.
+передавать файл полными пакетами.
 </listitem>
 
 </list>
@@ -1480,22 +2168,45 @@
 
 
 <directive name="try_files">
-<syntax><value>файл [файл ...] (uri|=код)</value></syntax>
+<syntax>
+        <argument>файл</argument> ...
+        <argument>uri</argument>
+</syntax>
+<syntax>
+        <argument>файл</argument> ...
+        =<argument>код</argument>
+</syntax>
 <default/>
+<context>server</context>
 <context>location</context>
 
 <para>
-Директива проверяет существование файлов в заданном порядке
-и использует для обработки запроса первый найденный файл, причём
-обработка делается в контексте этого же location'а.
-С помощью слэша в конце имени можно задать проверку существования
-каталога, например, так — "$uri/".
-В случае, если ни один файл не найден, то делается внутренний редирект
-на последний параметр.
-Последний параметр может быть кодом (0.7.51):
+Проверяет существование файлов в заданном порядке и использует
+для обработки запроса первый найденный файл, причём обработка
+делается в контексте этого же location'а.
+Путь к файлу строится из аргумента <argument>файл</argument>
+в соответствии с директивами
+<link id="root"/> и <link id="alias"/>.
+С помощью слэша в конце имени можно проверить существование каталога,
+например, “<code>$uri/</code>”.
+В случае, если ни один файл не найден, то делается внутреннее
+перенаправление на <argument>uri</argument>, заданный последним аргументом.
+Например:
+<example>
+location /images/ {
+    try_files $uri /images/default.gif;
+}
+
+location = /images/default.gif {
+    expires 30s;
+}
+</example>
+Последний аргумент может также указывать на именованный location,
+смотрите примеры ниже.
+С версии 0.7.51 последний аргумент может также быть кодом:
 <example>
 location / {
-    try_files      $uri  $uri/index.html  $uri.html  =404;
+    try_files $uri $uri/index.html $uri.html =404;
 }
 </example>
 </para>
@@ -1504,13 +2215,13 @@
 Пример использования при проксировании Mongrel:
 <example>
 location / {
-    try_files      /system/maintenance.html
-                   $uri  $uri/index.html  $uri.html
-                   @mongrel;
+    try_files /system/maintenance.html
+              $uri $uri/index.html $uri.html
+              @mongrel;
 }
 
 location @mongrel {
-    proxy_pass     http://mongrel;
+    proxy_pass http://mongrel;
 }
 </example>
 </para>
@@ -1519,57 +2230,57 @@
 Пример использования вместе с Drupal/FastCGI:
 <example>
 location / {
-    try_files      $uri  $uri/  @drupal;
+    try_files $uri $uri/ @drupal;
 }
 
 location ~ \.php$ {
-    try_files      $uri  @drupal;
-
-    fastcgi_pass   ...;
-
-    fastcgi_param  SCRIPT_FILENAME  /path/to$fastcgi_script_name;
-    fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
-    fastcgi_param  QUERY_STRING     $args;
+    try_files $uri @drupal;
+
+    fastcgi_pass ...;
+
+    fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;
+    fastcgi_param SCRIPT_NAME     $fastcgi_script_name;
+    fastcgi_param QUERY_STRING    $args;
 
     ... прочие fastcgi_param
 }
 
 location @drupal {
-    fastcgi_pass   ...;
-
-    fastcgi_param  SCRIPT_FILENAME  /path/to/index.php;
-    fastcgi_param  SCRIPT_NAME      /index.php;
-    fastcgi_param  QUERY_STRING     q=$uri&amp;$args;
+    fastcgi_pass ...;
+
+    fastcgi_param SCRIPT_FILENAME /path/to/index.php;
+    fastcgi_param SCRIPT_NAME     /index.php;
+    fastcgi_param QUERY_STRING    q=$uri&amp;$args;
 
     ... прочие fastcgi_param
 }
 </example>
-В этом примере директива try_files
+В следующем примере директива <code>try_files</code>
 <example>
 location / {
-    try_files      $uri  $uri/  @drupal;
+    try_files $uri $uri/ @drupal;
 }
 </example>
 аналогична директивам
 <example>
 location / {
-    error_page     404 = @drupal;
-    log_not_found  off;
+    error_page 404 = @drupal;
+    log_not_found off;
 }
 </example>
 А здесь
 <example>
 location ~ \.php$ {
-    try_files      $uri  @drupal;
-
-    fastcgi_pass   ...;
-
-    fastcgi_param  SCRIPT_FILENAME  /path/to$fastcgi_script_name;
+    try_files $uri @drupal;
+
+    fastcgi_pass ...;
+
+    fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;
 
     ...
 }
 </example>
-try_files тестирует существование PHP-файла,
+<code>try_files</code> проверяет существование PHP-файла,
 прежде чем передать запрос FastCGI-серверу.
 </para>
 
@@ -1577,22 +2288,22 @@
 Пример использования вместе с Wordpress и Joomla:
 <example>
 location / {
-    try_files      $uri  $uri/  @wordpress;
+    try_files $uri $uri/ @wordpress;
 }
 
 location ~ \.php$ {
-    try_files      $uri  @wordpress;
-
-    fastcgi_pass   ...;
-
-    fastcgi_param  SCRIPT_FILENAME  /path/to$fastcgi_script_name;
+    try_files $uri @wordpress;
+
+    fastcgi_pass ...;
+
+    fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;
     ... прочие fastcgi_param
 }
 
 location @wordpress {
-    fastcgi_pass   ...;
-
-    fastcgi_param  SCRIPT_FILENAME  /path/to/index.php;
+    fastcgi_pass ...;
+
+    fastcgi_param SCRIPT_FILENAME /path/to/index.php;
     ... прочие fastcgi_param
 }
 </example>
@@ -1608,207 +2319,354 @@
     image/gif  gif;
     image/jpeg jpg;
 </default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива задаёт соответствие расширения и MIME-типов ответов.
-Одному MIME-типу может соответствовать несколько расширений.
+Задаёт соответствие расширений имён файлов и MIME-типов ответов.
+Расширения нечувствительны к регистру символов.
+Одному MIME-типу может соответствовать несколько расширений, например:
+<example>
+types {
+    application/octet-stream bin exe dll;
+    application/octet-stream deb;
+    application/octet-stream dmg;
+}
+</example>
+</para>
+
+<para>
+Достаточно полная таблица соответствий входит в дистрибутив nginx
+и находится в файле <path>conf/mime.types</path>.
 </para>
 
 <para>
-Достаточно полная таблица соответствий входит в дистрибутив
-и находится в файле conf/mime.types.
+Для того, чтобы для определённого location'а для всех ответов
+выдавался MIME-тип “<code>application/octet-stream</code>”,
+можно использовать следующее:
+<example>
+location /download/ {
+    types        { }
+    default_type application/octet-stream;
+}
+</example>
 </para>
 
+</directive>
+
+
+<directive name="types_hash_bucket_size">
+<syntax><argument>размер</argument></syntax>
+<default>32|64|128</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
 <para>
-Для того, чтобы для определённого location'а для всех ответов выдавался
-MIME-тип "application/octet-stream", можно использовать следующее:
-<example>
-location /download/ {
-    types         { }
-    default_type  application/octet-stream;
-}
-</example>
+Задаёт размер корзины в хэш-таблицах типов.
+Значение по умолчанию зависит от размера строки кэша процессора.
+Подробнее смотрите в документе по
+<link doc="../hash.xml">настройке хэшей</link>.
+</para>
+
+</directive>
+
+
+<directive name="types_hash_max_size">
+<syntax><argument>размер</argument></syntax>
+<default>1024</default>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+
+<para>
+Задаёт максимальный <argument>размер</argument> хэш-таблиц типов.
+Подробнее смотрите в документе по
+<link doc="../hash.xml">настройке хэшей</link>.
 </para>
 
 </directive>
 
 
 <directive name="underscores_in_headers">
-<syntax><value>[on|off]</value></syntax>
+<syntax><value>on</value> | <value>off</value></syntax>
 <default>off</default>
-<context>http, server</context>
+<context>http</context>
+<context>server</context>
 
 <para>
-Директива разрешает или запрещает использование символов подчёркивания
-в строках заголовка запроса клиента.
+Разрешает или запрещает использование символов подчёркивания в
+полях заголовка запроса клиента.
+Если запрещено, поля заголовка запроса, в чьих именах есть подчёркивания,
+помечаются как недопустимые и подпадают под действие директивы
+<link id="ignore_invalid_headers"/>.
+</para>
+
+</directive>
+
+
+<directive name="variables_hash_bucket_size">
+<syntax><argument>размер</argument></syntax>
+<default>64</default>
+<context>http</context>
+
+<para>
+Задаёт размер корзины в хэш-таблице переменных.
+Подробнее смотрите в документе по
+<link doc="../hash.xml">настройке хэшей</link>.
+</para>
+
+</directive>
+
+
+<directive name="variables_hash_max_size">
+<syntax><argument>размер</argument></syntax>
+<default>512</default>
+<context>http</context>
+
+<para>
+Задаёт максимальный <argument>размер</argument> хэш-таблицы переменных.
+Подробнее смотрите в документе по
+<link doc="../hash.xml">настройке хэшей</link>.
 </para>
 
 </directive>
 
 </section>
 
-
-<section name="Встроенные переменные" id="variables">
+<section id="variables" name="Встроенные переменные">
 
 <para>
-Модуль ngx_http_core_module поддерживает встроенные переменные, имена
-которых совпадают с именами переменных в Apache.
-Прежде всего, это переменные, представляющие из себя строки заголовка
-запроса клиента, например, $http_user_agent, $http_cookie
-и тому подобное. Кроме того, есть и другие переменные:
-<list type="bullet">
-
-<listitem>
-$args, эта переменная равна аргументам в строке запроса;
-</listitem>
-
-<listitem>
-$arg_<value>name</value>, эта переменная равна аргументу <value>name</value>
-в строке запроса;
-</listitem>
-
-<listitem>
-$binary_remote_addr, эта переменная равна адресу клиента в бинарном виде,
-длина её значения всегда 4 байта;
-</listitem>
-
-<listitem>
-$content_length, эта переменная равна строке "Content-Length" в заголовке
-запроса;
-</listitem>
-
-<listitem>
-$content_type, эта переменная равна строке "Content-Type" в заголовке запроса;
-</listitem>
-
-<listitem>
-$cookie_<value>name</value>, эта переменная равна cookie <value>name</value>;
-</listitem>
-
-<listitem>
-$document_root, эта переменная равна значению директивы root для
-текущего запроса;
-</listitem>
-
-<listitem>
-$document_uri, то же самое, что и $uri;
-</listitem>
-
-<listitem>
-$host, эта переменная равна строке "Host" в заголовке запроса
-или имени сервера, на который пришёл запрос, если этой строки нет;
-</listitem>
-
-<listitem>
-$hostname, эта переменная равна имени хоста;
-</listitem>
-
-<listitem>
-$http_<value>name</value>, эта переменная равна строке <value>name</value>
-в заголовке запроса;
-</listitem>
-
-<listitem>
-$is_args, эта переменная равна "?", если в строке запроса есть аргументы,
-и пустой строке, если их нет;
-</listitem>
-
-<listitem>
-$limit_rate, эта переменная позволяет установить ограничение
-скорости соединения;
-</listitem>
-
-<listitem>
-$pid, эта переменная равна номеру рабочего процесса;
-</listitem>
-
-<listitem>
-$request_method, эта переменная равна методу запроса,
-обычно это "GET" или "POST";
-</listitem>
-
-<listitem>
-$remote_addr, эта переменная равна адресу клиента;
-</listitem>
-
-<listitem>
-$remote_port, эта переменная равна порту клиента;
-</listitem>
-
-<listitem>
-$remote_user, эта переменная равна имени пользователя, используемого
-в Basic аутентификации;
-</listitem>
-
-<listitem>
-$realpath_root, эта переменная равна значению директивы root для
-текущего запроса, при этом все символические ссылки преобразованы
-в реальные путь;
-</listitem>
-
-<listitem>
-$request_filename, эта переменная равна пути к файлу для текущего
-запроса, формируемому из директив root или alias и URI запроса;
-</listitem>
-
-<listitem>
-$request_body, эта переменная содержит тело запроса.
-Значение переменной появляется в location'ах, обрабатываемых директивами
+Модуль <code>ngx_http_core_module</code> поддерживает встроенные переменные,
+имена которых совпадают с именами переменных веб-сервера Apache.
+Прежде всего, это переменные, представляющие из себя поля заголовка
+запроса клиента, такие как <var>$http_user_agent</var>, <var>$http_cookie</var>
+и тому подобное.
+Кроме того, есть и другие переменные:
+<list type="tag">
+
+<tag-name><var>$arg_</var><argument>имя</argument></tag-name>
+<tag-desc>
+аргумент <argument>имя</argument> в строке запроса
+</tag-desc>
+
+<tag-name><var>$args</var></tag-name>
+<tag-desc>
+аргументы в строке запроса
+</tag-desc>
+
+<tag-name><var>$binary_remote_addr</var></tag-name>
+<tag-desc>
+адрес клиента в бинарном виде, длина значения всегда 4 байта
+</tag-desc>
+
+<tag-name><var>$body_bytes_sent</var></tag-name>
+<tag-desc>
+число байт, переданное клиенту, без учёта заголовка ответа
+</tag-desc>
+
+<tag-name><var>$content_length</var></tag-name>
+<tag-desc>
+поле <header>Content-Length</header> заголовка запроса
+</tag-desc>
+
+<tag-name><var>$content_type</var></tag-name>
+<tag-desc>
+поле <header>Content-Type</header> заголовка запроса
+</tag-desc>
+
+<tag-name><var>$cookie_</var><argument>имя</argument></tag-name>
+<tag-desc>
+cookie <argument>имя</argument>
+</tag-desc>
+
+<tag-name><var>$document_root</var></tag-name>
+<tag-desc>
+значение директивы <link id="root"/> для текущего запроса
+</tag-desc>
+
+<tag-name><var>$document_uri</var></tag-name>
+<tag-desc>
+то же, что и <var>$uri</var>
+</tag-desc>
+
+<tag-name><var>$host</var></tag-name>
+<tag-desc>
+поле <header>Host</header> заголовка запроса,
+или имя сервера, соответствующего запросу, если этого поля нет
+</tag-desc>
+
+<tag-name><var>$hostname</var></tag-name>
+<tag-desc>
+имя хоста
+</tag-desc>
+
+<tag-name><var>$http_</var><argument>имя</argument></tag-name>
+<tag-desc>
+поле <argument>имя</argument> заголовка запроса
+</tag-desc>
+
+<tag-name><var>$https</var></tag-name>
+<tag-desc>
+“<code>on</code>”
+если соединение работает в режиме SSL,
+либо пустая строка
+</tag-desc>
+
+<tag-name><var>$is_args</var></tag-name>
+<tag-desc>
+“<code>?</code>”, если в строке запроса есть аргументы,
+и пустая строка, если их нет
+</tag-desc>
+
+<tag-name><var>$limit_rate</var></tag-name>
+<tag-desc>
+позволяет ограничивать скорость соединения
+</tag-desc>
+
+<tag-name><var>$nginx_version</var></tag-name>
+<tag-desc>
+версия nginx
+</tag-desc>
+
+<tag-name><var>$pid</var></tag-name>
+<tag-desc>
+номер (PID) рабочего процесса
+</tag-desc>
+
+<tag-name><var>$query_string</var></tag-name>
+<tag-desc>
+то же, что и <var>$args</var>
+</tag-desc>
+
+<tag-name><var>$realpath_root</var></tag-name>
+<tag-desc>
+значение директивы <link id="root"/> для текущего запроса,
+при этом все символические ссылки преобразованы в реальные путь
+</tag-desc>
+
+<tag-name><var>$remote_addr</var></tag-name>
+<tag-desc>
+адрес клиента
+</tag-desc>
+
+<tag-name><var>$remote_port</var></tag-name>
+<tag-desc>
+порт клиента
+</tag-desc>
+
+<tag-name><var>$remote_user</var></tag-name>
+<tag-desc>
+имя пользователя, использованное в Basic аутентификации
+</tag-desc>
+
+<tag-name><var>$request</var></tag-name>
+<tag-desc>
+оригинальная строка запроса целиком
+</tag-desc>
+
+<tag-name><var>$request_body</var></tag-name>
+<tag-desc>
+тело запроса
+<para>
+Значение переменной появляется в location'ах, обрабатываемых
+директивами
 <link doc="ngx_http_proxy_module.xml" id="proxy_pass"/>
-и <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_pass"/>.
-</listitem>
-
-<listitem>
-$request_body_file, эта переменная равна имени временного файла, в котором
-хранится тело запроса.
-По завершению работы файл необходимо удалить.
-Для того, чтобы тело запроса клиента всегда записывалось в файл, нужно
-указать <link doc="ngx_http_core_module.xml" id="client_body_in_file_only">client_body_in_file_only on</link>.
-При передаче имени в проксированном запросе или в запросе к FastCGI-серверу
-следует запретить передачу самого тела директивами
-"proxy_pass_request_body off" или
-"fastcgi_pass_request_body off" соответственно.
-</listitem>
-
-<listitem>
-$request_uri, эта переменная равна полному первоначальному URI вместе
-с аргументами;
-</listitem>
-
-<listitem>
-$query_string, то же самое, что и $args;
-</listitem>
-
-<listitem>
-$scheme, эта переменная равна схеме запроса — "http" или "https";
-</listitem>
-
-<listitem>
-$server_protocol, эта переменная равна протоколу запроса,
-обычно это "HTTP/1.0" или "HTTP/1.1";
-</listitem>
-
-<listitem>
-$server_addr, эта переменная равна адресу сервера, на который пришёл запрос.
-Как правило, для получения значения этой переменной делается один системный
-вызов. Для того, чтобы избежать системного вызова, нужно указывать
-адреса в директивах listen и использовать параметр bind;
-</listitem>
-
-<listitem>
-$server_name, эта переменная равна имени сервера, на который пришёл запрос;
-</listitem>
-
-<listitem>
-$server_port, эта переменная равна порту сервера, на который пришёл запрос;
-</listitem>
-
-<listitem>
-$uri, эта переменная равна текущему URI в запросе, он
-может отличаться от первоначального, например, при внутренних редиректах
-или при использовании индексных файлов.
-</listitem>

+<link doc="ngx_http_fastcgi_module.xml" id="fastcgi_pass"/>.
+</para>
+</tag-desc>
+
+<tag-name><var>$request_body_file</var></tag-name>
+<tag-desc>
+имя временного файла, в котором хранится тело запроса
+<para>
+По завершению обработки файл необходимо удалить.
+Для того, чтобы тело запроса всегда записывалось в файл,
+следует указать
+<link id="client_body_in_file_only">client_body_in_file_only on</link>.
+При передаче имени временного файла в проксированном запросе
+или в запросе к FastCGI-серверу следует запретить передачу самого
+тела директивами
+<link doc="ngx_http_proxy_module.xml" id="proxy_pass_request_body">
+proxy_pass_request_body off</link>
+или
+<link doc="ngx_http_fastcgi_module.xml" id="fastcgi_pass_request_body">
+fastcgi_pass_request_body off</link>
+соответственно.
+</para>
+</tag-desc>
+
+<tag-name><var>$request_completion</var></tag-name>
+<tag-desc>
+“<code>OK</code>” если запрос завершился,
+либо пустая строка
+</tag-desc>
+
+<tag-name><var>$request_filename</var></tag-name>
+<tag-desc>
+путь к файлу для текущего запроса, формируемый из директив
+<link id="root"/> или <link id="alias"/> и URI запроса
+</tag-desc>
+
+<tag-name><var>$request_method</var></tag-name>
+<tag-desc>
+метод запроса, обычно
+“<code>GET</code>” или “<code>POST</code>”
+</tag-desc>
+
+<tag-name><var>$request_uri</var></tag-name>
+<tag-desc>
+оригинальный URI запроса целиком (с аргументами)
+</tag-desc>
+
+<tag-name><var>$scheme</var></tag-name>
+<tag-desc>
+схема запроса, “<code>http</code>” или “<code>https</code>”
+</tag-desc>
+
+<tag-name><var>$sent_http_</var><argument>имя</argument></tag-name>
+<tag-desc>
+поле <argument>имя</argument> заголовка ответа
+</tag-desc>
+
+<tag-name><var>$server_addr</var></tag-name>
+<tag-desc>
+адрес сервера, принявшего запрос
+<para>
+Получение значения этой переменной обычно требует одного системного вызова.
+Чтобы избежать системного вызова, в директивах <link id="listen"/>
+следует указывать адреса и использовать параметр <parameter>bind</parameter>.
+</para>
+</tag-desc>
+
+<tag-name><var>$server_name</var></tag-name>
+<tag-desc>
+имя сервера, принявшего запрос
+</tag-desc>
+
+<tag-name><var>$server_port</var></tag-name>
+<tag-desc>
+порт сервера, принявшего запрос
+</tag-desc>
+
+<tag-name><var>$server_protocol</var></tag-name>
+<tag-desc>
+протокол сервера, обычно
+“<code>HTTP/1.0</code>”
+или
+“<code>HTTP/1.1</code>”
+</tag-desc>
+
+<tag-name><var>$uri</var></tag-name>
+<tag-desc>
+текущий URI запроса
+<para>
+Он может отличаться от первоначального, например, при внутренних
+перенаправлениях или при использовании индексных файлов.
+</para>
+</tag-desc>
 
 </list>
 </para>