diff xml/ru/docs/http/ngx_http_limit_conn_module.xml @ 179:8cc01e2179a9

- Reflected recent changes made to ngx_http_limit_conn_module. - Revamped documentation for ngx_http_limit_req_module. - Translated ngx_http_limit_{conn,req}_module into English.
author Ruslan Ermilov <ru@nginx.com>
date Mon, 14 Nov 2011 18:09:03 +0000
parents xml/ru/docs/http/ngx_http_limit_zone_module.xml@40eec261c2a6
children 9e7d0c9c7eaa
line wrap: on
line diff
copy from xml/ru/docs/http/ngx_http_limit_zone_module.xml
copy to xml/ru/docs/http/ngx_http_limit_conn_module.xml
--- a/xml/ru/docs/http/ngx_http_limit_zone_module.xml
+++ b/xml/ru/docs/http/ngx_http_limit_conn_module.xml
@@ -2,15 +2,21 @@
 
 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
 
-<module name="Директивы модуля ngx_http_limit_zone_module"
-        link="/ru/docs/http/ngx_http_limit_zone_module.html"
+<module name="Модуль ngx_http_limit_conn_module"
+        link="/ru/docs/http/ngx_http_limit_conn_module.html"
         lang="ru">
 
 <section id="summary">
 
 <para>
-Модуль ngx_http_limit_zone_module позволяет ограничить число одновременных
-соединений для заданной сессии или, как частный случай, с одного адреса.
+Модуль <code>ngx_http_limit_conn_module</code> позволяет ограничить
+число соединений по заданному ключу или,
+как частный случай, число соединений с одного IP-адреса.
+</para>
+
+<para>
+Ограничиваются не любые соединения, а лишь те, в которых имеются
+запросы, обрабатываемые сервером, и заголовок запроса уже прочитан.
 </para>
 
 </section>
@@ -21,7 +27,7 @@
 <para>
 <example>
 http {
-    limit_zone   one  $binary_remote_addr  10m;
+    limit_conn_zone $binary_remote_addr zone=addr:10m;
 
     ...
 
@@ -30,7 +36,7 @@ http {
         ...
 
         location /download/ {
-            limit_conn   one  1;
+            limit_conn addr 1;
         }
 </example>
 </para>
@@ -40,67 +46,109 @@ http {
 
 <section name="Директивы" id="directives">
 
-<directive name="limit_zone">
-<syntax><value>название $переменная размер</value></syntax>
+<directive name="limit_conn">
+<syntax><argument>зона число</argument></syntax>
 <default/>
 <context>http</context>
+<context>server</context>
+<context>location</context>
 
 <para>
-Директива описывает зону, в которой хранятся состояния сессий.
-Значения сессий определяется заданной переменной.
-Пример использования:
+Директива задаёт максимально допустимое число соединений
+для одного значения ключа.
+При превышении этого числа в ответ на запрос сервер вернёт ошибку
+<http-status code="503" text="Service Temporarily Unavailable"/>.
+Например, директивы
 <example>
-limit_zone   one  $binary_remote_addr  10m;
+limit_conn_zone $binary_remote_addr zone=addr:10m;
+
+    server {
+        location /download/ {
+            limit_conn addr 1;
+        }
 </example>
+разрешают одновременно обрабатывать не более одного соединения с одного
+IP-адреса.
 </para>
 
 <para>
-В качестве сессии используется адрес клиента.
-Обратите внимание, что вместо переменной $remote_addr используется
-переменная $binary_remote_addr.
-Длина значений переменной $remote_addr может быть от 7 до 15 байт,
-поэтому размер состоянии равен 32 или 64 байтам.
-Длина всех значений переменной $binary_remote_addr всегда 4 байта
-и размер состояния всегда 32 байта.
-В зоне размером 1 мегабайт может разместиться около 32 000 состояний
-размером 32 байта.
+Допустимо одновременное указание нескольких директив <code>limit_conn</code>,
+при этом будет срабатывать любое из ограничений.
 </para>
 
-</directive>
-
-
-<directive name="limit_conn">
-<syntax><value>зона число</value></syntax>
-<default/>
-<context>http, server, location</context>
-
 <para>
-Директива задаёт максимальное число одновременных соединений для одной сессии.
-При превышении этого числа запрос завершается кодом "Service unavailable" (503).
-Например, директивы
-<example>
-limit_zone   one  $binary_remote_addr  10m;
-
-    server {
-        location /download/ {
-            limit_conn   one  1;
-        }
-
-</example>
-позволяют не более одного одновременного соединения с одного адреса.
+Директивы наследуются с предыдущего уровня при условии, что на данном уровне
+не описаны свои директивы <code>limit_conn</code>.
 </para>
 
 </directive>
 
 
 <directive name="limit_conn_log_level">
-<syntax><value>[info|notice|warn|error]</value></syntax>
+<syntax>
+<value>info</value> |
+<value>notice</value> |
+<value>warn</value> |
+<value>error</value>
+</syntax>
 <default>error</default>
-<context>http, server, location</context>
+<context>http</context>
+<context>server</context>
+<context>location</context>
+<appeared-in>0.8.18</appeared-in>
+
+<para>
+Директива задаёт желаемый уровень записи в лог случаев ограничения
+числа соединений.
+</para>
+
+</directive>
+
+
+<directive name="limit_conn_zone">
+<syntax>
+    <argument>$переменная </argument>
+    <parameter>zone</parameter>=<argument>название</argument>:<argument>размер</argument>
+</syntax>
+<default/>
+<context>http</context>
 
 <para>
-Директива (0.8.18) задаёт уровень логирования случаев ограничения
-числа соединений.
+Директива задаёт параметры зоны, которая хранит состояние
+для разных значений ключа.
+Состояние в частности хранит текущее число соединений.
+Ключом является значение заданной переменной.
+Пример использования:
+<example>
+limit_conn_zone $binary_remote_addr zone=addr:10m;
+</example>
+Здесь в качестве ключа используется IP-адрес клиента.
+Обратите внимание, что вместо переменной <var>$remote_addr</var>
+использована переменная <var>$binary_remote_addr</var>.
+Длина значения переменной <var>$remote_addr</var> может колебаться
+от 7 до 15 байт, при этом размер хранимого состояния составляет
+либо 32, либо 64 байта на 32-битных платформах, и всегда 64
+байта на 64-битных.
+Длина значения переменной <var>$binary_remote_addr</var> всегда
+равна 4 байтам, при этом размер состояния всегда равен 32 байтам
+на 32-битных платформах и 64 байтам на 64-битных.
+В зоне размером 1 мегабайт может разместиться около 32 тысяч состояний
+размером 32 байта, или 16 тысяч состояний размером 64 байта.
+При переполнении зоны в ответ на последующие запросы сервер будет
+возвращать ошибку
+<http-status code="503" text="Service Temporarily Unavailable"/>.
+</para>
+
+</directive>
+
+<directive name="limit_zone">
+<syntax><argument>$переменная название размер</argument></syntax>
+<default/>
+<context>http</context>
+
+<para>
+Эта директива устарела в версии 1.1.8, вместо неё следует
+использовать директиву <link id="limit_conn_zone"/>.
 </para>
 
 </directive>