diff xml/ru/docs/http/ngx_http_limit_req_module.xml @ 76:4a4caa566120

Russian documentation import. Changes in module.dtd: <example> now allowed to contain <value> and <emphasis> elements (we need this to show important parts in examples), less strict checking of <directive> syntax (we don't want to fully document some directives, notably deprecated ones). Known issues: 1. <syntax> elements are preserved as is, they will require manual conversion (likely to some not-yet-existed format a la DocBook cmdsynopsis, as currently used one seems to be incomplete); 2. <value> no longer corresponds to replaceable content, and it's use in examples isn't correct; 3. <link doc="document#fragment"> doesn't work with current xslt, either should be supported or changed to <link doc="document" id="fragment">. The following files are intentionally omitted: maillists.xml (support.xml should be used instead), experimental.xml (obsolete), faq.xml (conflicts with existing one, needs discussion). Not yet linked to site.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 11 Oct 2011 12:57:50 +0000
parents
children 1d315ef37215
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/xml/ru/docs/http/ngx_http_limit_req_module.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
+
+<module name="Директивы модуля ngx_http_limit_req_module"
+        link="/ru/docs/http/ngx_http_limit_req_module.html"
+        lang="ru">
+
+<section name="" id="summary">
+
+<para>
+Модуль ngx_http_limit_req_module (0.7.21) позволяет ограничить число запросов
+для заданной сессии или, как частный случай, с одного адреса.
+Ограничение делается с помощью метода leaky bucket.
+</para>
+
+</section>
+
+<section name="Пример конфигурации" id="example">
+
+<para>
+<example>
+http {
+    limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
+
+    ...
+
+    server {
+
+        ...
+
+        location /search/ {
+            limit_req   zone=one  burst=5;
+        }
+</example>
+</para>
+
+</section>
+
+
+<section name="Директивы" id="directives">
+
+<directive name="limit_req_zone">
+<syntax>limit_req_zone <value>$переменная zone=название:размер
+        rate=скорость</value></syntax>
+<default>нет</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>limit_req <value>zone=название burst=число [nodelay]</value>
+</syntax>
+<default>нет</default>
+<context>http, server, location</context>
+
+<para>
+Директива задаёт зону (zone) и максимально возможные всплески запросов (burst).
+Если скорость запросов превышает описанную в зоне,
+то их обработка запроса задерживается так, чтобы запросы обрабывались
+с заданной скоростью.
+Избыточные запросы задерживаются до тех пор, пока их число
+не превысит заданное число всплесков.
+В этом случае запрос завершается кодом "Service unavailable" (503).
+По умолчанию число всплесков равно нулю.
+Например, директивы
+<example>
+limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
+
+    server {
+        location /search/ {
+            limit_req   zone=one  burst=5;
+        }
+
+</example>
+позволяют в среднем не более 1 запроса в секунду
+со всплесками не более 5 запросов.
+</para>
+
+<para>
+Если же избыточные запросы в пределах лимита всплесков задерживать
+не надо, то нужно использовать параметр nodelay:
+<example>
+            limit_req   zone=one  burst=5  nodelay;
+</example>
+</para>
+
+</directive>
+
+
+<directive name="limit_req_log_level">
+<syntax>limit_req_log_level <value>[info|notice|warn|error]</value></syntax>
+<default>limit_req_log_level  error</default>
+<context>http, server, location</context>
+
+<para>
+Директива (0.8.18) задаёт уровень логирования случаев ограничения
+числа запросов и задержек при обработке запроса.
+Задержки логируются на один уровень ниже, чем ограничения, например,
+если задан "limit_req_log_level notice", то задержки будут логироваться
+на уровне info.
+</para>
+
+</directive>
+
+</section>
+
+</module>