diff xml/ru/docs/http/ngx_http_limit_req_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 40eec261c2a6
children bfe3eff81d04
line wrap: on
line diff
--- a/xml/ru/docs/http/ngx_http_limit_req_module.xml
+++ b/xml/ru/docs/http/ngx_http_limit_req_module.xml
@@ -2,7 +2,7 @@
 
 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
 
-<module name="Директивы модуля ngx_http_limit_req_module"
+<module name="Модуль ngx_http_limit_req_module"
         link="/ru/docs/http/ngx_http_limit_req_module.html"
         lang="ru">
 
@@ -10,8 +10,8 @@
 
 <para>
 Модуль ngx_http_limit_req_module (0.7.21) позволяет ограничить число запросов
-для заданной сессии или, как частный случай, с одного адреса.
-Ограничение делается с помощью метода leaky bucket.
+по заданному ключу или, как частный случай, число запросов с одного IP-адреса.
+Ограничение делается с помощью метода “leaky bucket”.
 </para>
 
 </section>
@@ -21,7 +21,7 @@
 <para>
 <example>
 http {
-    limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
+    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
 
     ...
 
@@ -30,7 +30,7 @@ http {
         ...
 
         location /search/ {
-            limit_req   zone=one  burst=5;
+            limit_req zone=one burst=5;
         }
 </example>
 </para>
@@ -40,66 +40,34 @@ http {
 
 <section name="Директивы" id="directives">
 
-<directive name="limit_req_zone">
-<syntax><value>$переменная zone=название:размер
-        rate=скорость</value></syntax>
+<directive name="limit_req">
+<syntax>
+    <parameter>zone</parameter>=<argument>название</argument>
+    [<parameter>burst</parameter>=<argument>число</argument>]
+    [<parameter>nodelay</parameter>]
+</syntax>
 <default/>
 <context>http</context>
-
-<para>
-Директива описывает зону, в которой хранятся состояния сессий.
-Значения сессий определяется заданной переменной.
-Пример использования:
-<example>
-limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
-</example>
-</para>
-
-<para>
-В данном случае состояния сессий хранятся в зоне "one" размером 10 мегабайт
-и средняя скорость запросов для этой зоны не может более 1 запроса в секунду.
-</para>
-
-<para>
-В качестве сессии используется адрес клиента.
-Обратите внимание, что вместо переменной $remote_addr используется
-переменная $binary_remote_addr, позволяющая уменьшить размер состояния
-до 64 байт.
-В зоне размером 1 мегабайт может разместиться около 16 000 состояний
-размером 64 байта.
-</para>
-
-<para>
-Скорость задаётся в запросах в секунду.
-Если же нужна скорость меньше одного запроса в секунду,
-то она задаётся в запросах в минуту, например,
-ползапроса в секунду — это 30r/m.
-</para>
-
-</directive>
-
-<directive name="limit_req">
-<syntax><value>zone=название burst=число [nodelay]</value>
-</syntax>
-<default/>
-<context>http, server, location</context>
+<context>server</context>
+<context>location</context>
 
 <para>
 Директива задаёт зону (zone) и максимально возможные всплески запросов (burst).
 Если скорость запросов превышает описанную в зоне,
-то их обработка запроса задерживается так, чтобы запросы обрабывались
+то их обработка задерживается так, чтобы запросы обрабатывались
 с заданной скоростью.
 Избыточные запросы задерживаются до тех пор, пока их число
 не превысит заданное число всплесков.
-В этом случае запрос завершается кодом "Service unavailable" (503).
+В этом случае запрос завершается с ошибкой
+<http-status code="503" text="Service Temporarily Unavailable"/>.
 По умолчанию число всплесков равно нулю.
 Например, директивы
 <example>
-limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
+limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
 
     server {
         location /search/ {
-            limit_req   zone=one  burst=5;
+            limit_req zone=one burst=5;
         }
 
 </example>
@@ -109,9 +77,9 @@ limit_req_zone  $binary_remote_addr  zon
 
 <para>
 Если же избыточные запросы в пределах лимита всплесков задерживать
-не надо, то нужно использовать параметр nodelay:
+не требуется, то следует использовать параметр <parameter>nodelay</parameter>:
 <example>
-            limit_req   zone=one  burst=5  nodelay;
+            limit_req zone=one burst=5 nodelay;
 </example>
 </para>
 
@@ -119,16 +87,72 @@ limit_req_zone  $binary_remote_addr  zon
 
 
 <directive name="limit_req_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>
+Директива задаёт желаемый уровень записи в лог случаев ограничения
+числа запросов и задержек при обработке запроса.
+Задержки записываются в лог с уровнем на единицу меньшим, чем ограничения,
+например, если указано <command>limit_req_log_level notice</command>,
+то задержки будут записываться в лог на уровне <value>info</value>.
+</para>
+
+</directive>
+
+
+<directive name="limit_req_zone">
+<syntax>
+    <argument>$переменная </argument>
+    <parameter>zone</parameter>=<argument>название</argument>:<argument>размер </argument>
+    <parameter>rate</parameter>=<argument>скорость</argument>
+</syntax>
+<default/>
+<context>http</context>
 
 <para>
-Директива (0.8.18) задаёт уровень логирования случаев ограничения
-числа запросов и задержек при обработке запроса.
-Задержки логируются на один уровень ниже, чем ограничения, например,
-если задан "limit_req_log_level notice", то задержки будут логироваться
-на уровне info.
+Директива задаёт параметры зоны,
+которая хранит состояние для разных значений ключа.
+Состояние в частности хранит текущее число запросов.
+Ключом является значение заданной переменной.
+Пример использования:
+<example>
+limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
+</example>
+</para>
+
+<para>
+В данном случае состояния хранятся в зоне “one” размером 10 мегабайт,
+и средняя скорость запросов для этой зоны не может превышать
+1 запроса в секунду.
+</para>
+
+<para>
+В качестве ключа используется IP-адрес клиента.
+Обратите внимание, что вместо переменной <var>$remote_addr</var> используется
+переменная <var>$binary_remote_addr</var>, позволяющая уменьшить
+размер состояния до 64 байт.
+В зоне размером 1 мегабайт может разместиться около 16 тысяч состояний
+размером 64 байта.
+При переполнении зоны в ответ на последующие запросы сервер будет
+возвращать ошибку
+<http-status code="503" text="Service Temporarily Unavailable"/>.
+</para>
+
+<para>
+Скорость задаётся в запросах в секунду (r/s).
+Если же нужна скорость меньше одного запроса в секунду,
+то она задаётся в запросах в минуту (r/m), например,
+ползапроса в секунду — это 30r/m.
 </para>
 
 </directive>