Mercurial > hg > nginx-site
comparison 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 |
comparison
equal
deleted
inserted
replaced
75:2bf4cd2787c5 | 76:4a4caa566120 |
---|---|
1 <?xml version="1.0" encoding="utf-8"?> | |
2 | |
3 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> | |
4 | |
5 <module name="Директивы модуля ngx_http_limit_req_module" | |
6 link="/ru/docs/http/ngx_http_limit_req_module.html" | |
7 lang="ru"> | |
8 | |
9 <section name="" id="summary"> | |
10 | |
11 <para> | |
12 Модуль ngx_http_limit_req_module (0.7.21) позволяет ограничить число запросов | |
13 для заданной сессии или, как частный случай, с одного адреса. | |
14 Ограничение делается с помощью метода leaky bucket. | |
15 </para> | |
16 | |
17 </section> | |
18 | |
19 <section name="Пример конфигурации" id="example"> | |
20 | |
21 <para> | |
22 <example> | |
23 http { | |
24 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; | |
25 | |
26 ... | |
27 | |
28 server { | |
29 | |
30 ... | |
31 | |
32 location /search/ { | |
33 limit_req zone=one burst=5; | |
34 } | |
35 </example> | |
36 </para> | |
37 | |
38 </section> | |
39 | |
40 | |
41 <section name="Директивы" id="directives"> | |
42 | |
43 <directive name="limit_req_zone"> | |
44 <syntax>limit_req_zone <value>$переменная zone=название:размер | |
45 rate=скорость</value></syntax> | |
46 <default>нет</default> | |
47 <context>http</context> | |
48 | |
49 <para> | |
50 Директива описывает зону, в которой хранятся состояния сессий. | |
51 Значения сессий определяется заданной переменной. | |
52 Пример использования: | |
53 <example> | |
54 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; | |
55 </example> | |
56 </para> | |
57 | |
58 <para> | |
59 В данном случае состояния сессий хранятся в зоне "one" размером 10 мегабайт | |
60 и средняя скорость запросов для этой зоны не может более 1 запроса в секунду. | |
61 </para> | |
62 | |
63 <para> | |
64 В качестве сессии используется адрес клиента. | |
65 Обратите внимание, что вместо переменной $remote_addr используется | |
66 переменная $binary_remote_addr, позволяющая уменьшить размер состояния | |
67 до 64 байт. | |
68 В зоне размером 1 мегабайт может разместиться около 16 000 состояний | |
69 размером 64 байта. | |
70 </para> | |
71 | |
72 <para> | |
73 Скорость задаётся в запросах в секунду. | |
74 Если же нужна скорость меньше одного запроса в секунду, | |
75 то она задаётся в запросах в минуту, например, | |
76 ползапроса в секунду — это 30r/m. | |
77 </para> | |
78 | |
79 </directive> | |
80 | |
81 <directive name="limit_req"> | |
82 <syntax>limit_req <value>zone=название burst=число [nodelay]</value> | |
83 </syntax> | |
84 <default>нет</default> | |
85 <context>http, server, location</context> | |
86 | |
87 <para> | |
88 Директива задаёт зону (zone) и максимально возможные всплески запросов (burst). | |
89 Если скорость запросов превышает описанную в зоне, | |
90 то их обработка запроса задерживается так, чтобы запросы обрабывались | |
91 с заданной скоростью. | |
92 Избыточные запросы задерживаются до тех пор, пока их число | |
93 не превысит заданное число всплесков. | |
94 В этом случае запрос завершается кодом "Service unavailable" (503). | |
95 По умолчанию число всплесков равно нулю. | |
96 Например, директивы | |
97 <example> | |
98 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; | |
99 | |
100 server { | |
101 location /search/ { | |
102 limit_req zone=one burst=5; | |
103 } | |
104 | |
105 </example> | |
106 позволяют в среднем не более 1 запроса в секунду | |
107 со всплесками не более 5 запросов. | |
108 </para> | |
109 | |
110 <para> | |
111 Если же избыточные запросы в пределах лимита всплесков задерживать | |
112 не надо, то нужно использовать параметр nodelay: | |
113 <example> | |
114 limit_req zone=one burst=5 nodelay; | |
115 </example> | |
116 </para> | |
117 | |
118 </directive> | |
119 | |
120 | |
121 <directive name="limit_req_log_level"> | |
122 <syntax>limit_req_log_level <value>[info|notice|warn|error]</value></syntax> | |
123 <default>limit_req_log_level error</default> | |
124 <context>http, server, location</context> | |
125 | |
126 <para> | |
127 Директива (0.8.18) задаёт уровень логирования случаев ограничения | |
128 числа запросов и задержек при обработке запроса. | |
129 Задержки логируются на один уровень ниже, чем ограничения, например, | |
130 если задан "limit_req_log_level notice", то задержки будут логироваться | |
131 на уровне info. | |
132 </para> | |
133 | |
134 </directive> | |
135 | |
136 </section> | |
137 | |
138 </module> |