comparison xml/ru/docs/stream/ngx_stream_upstream_hc_module.xml @ 1947:6b6d0e844bf7

Moved "health_check" and "match" to ngx_stream_upstream_hc_module.
author Yaroslav Zhuravlev <yar@nginx.com>
date Fri, 24 Mar 2017 19:48:53 +0300
parents xml/ru/docs/stream/ngx_stream_upstream_module.xml@a58b35cc0823
children 25962922969a
comparison
equal deleted inserted replaced
1946:37df1535ea91 1947:6b6d0e844bf7
1 <?xml version="1.0"?>
2
3 <!--
4 Copyright (C) Nginx, Inc.
5 -->
6
7 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
8
9 <module name="Модуль ngx_stream_upstream_hc_module"
10 link="/ru/docs/stream/ngx_stream_upstream_hc_module.html"
11 lang="ru"
12 rev="1">
13
14 <section id="summary">
15
16 <para>
17 Модуль <literal>ngx_stream_upstream_hc_module</literal> (1.9.0)
18 позволяет активировать периодические проверки работоспособности серверов в
19 <link doc="ngx_stream_upstream_module.xml" id="upstream">группе</link>.
20 Группа должна находиться в
21 <link doc="ngx_stream_upstream_module.xml" id="zone">зоне разделяемой памяти</link>.
22 </para>
23
24 <para>
25 <note>
26 Модуль доступен как часть
27 <commercial_version>коммерческой подписки</commercial_version>.
28 </note>
29 </para>
30
31 </section>
32
33
34 <section id="example" name="Пример конфигурации">
35
36 <para>
37 <example>
38 upstream tcp {
39 zone upstream_tcp 64k;
40
41 server backend1.example.com:12345 weight=5;
42 server backend2.example.com:12345 fail_timeout=5s slow_start=30s;
43 server 192.0.2.1:12345 max_fails=3;
44
45 server backup1.example.com:12345 backup;
46 server backup2.example.com:12345 backup;
47 }
48
49 server {
50 listen 12346;
51 proxy_pass tcp;
52 health_check;
53 }
54 </example>
55 </para>
56
57 </section>
58
59
60 <section id="directives" name="Директивы">
61
62 <directive name="health_check">
63 <syntax>[<value>параметры</value>]</syntax>
64 <default/>
65 <context>server</context>
66
67 <para>
68 Активирует периодические проверки работоспособности серверов в
69 <link doc="ngx_stream_upstream_hc_module.xml" id="upstream">группе</link>.
70 </para>
71
72 <para>
73 Могут быть заданы следующие необязательные параметры:
74 <list type="tag">
75
76 <tag-name id="interval">
77 <literal>interval</literal>=<value>время</value>
78 </tag-name>
79 <tag-desc>
80 задаёт интервал между двумя последовательными проверками,
81 по умолчанию 5 секунд.
82 </tag-desc>
83
84 <tag-name id="health_check_jitter">
85 <literal>jitter</literal>=<value>время</value>
86 </tag-name>
87 <tag-desc>
88 задаёт время, в пределах которого
89 случайным образом задерживается каждая проверка,
90 по умолчанию задержки нет.
91 </tag-desc>
92
93 <tag-name id="fails">
94 <literal>fails</literal>=<value>число</value>
95 </tag-name>
96 <tag-desc>
97 задаёт число последовательных неуспешных проверок для определённого сервера,
98 после которых сервер будет считаться неработоспособным,
99 по умолчанию 1.
100 </tag-desc>
101
102 <tag-name id="passes">
103 <literal>passes</literal>=<value>число</value>
104 </tag-name>
105 <tag-desc>
106 задаёт число последовательных успешных проверок для определённого сервера,
107 после которых сервер будет считаться работоспособным,
108 по умолчанию 1.
109 </tag-desc>
110
111 <tag-name id="health_check_mandatory">
112 <literal>mandatory</literal>
113 </tag-name>
114 <tag-desc>
115 устанавливает исходное состояние “checking” для сервера
116 до завершения первой проверки работоспособности (1.11.7).
117 Если параметр не указан,
118 то исходно сервер будет считаться работоспособным.
119 </tag-desc>
120
121 <tag-name id="hc_match">
122 <literal>match</literal>=<value>имя</value>
123 </tag-name>
124 <tag-desc>
125 указывает на блок <literal>match</literal> с условиями, которым должно
126 удовлетворять соединение, чтобы результат проверки считался успешным.
127 По умолчанию для TCP проверяется
128 лишь возможность установки TCP-соединения с сервером,
129 для <link id="health_check_udp">UDP</link> проверяется отсутствие
130 сообщения ICMP “<literal>Destination Unreachable</literal>”
131 в ответ на отправленную строку “<literal>nginx health check</literal>”.
132 <note>
133 До версии 1.11.7 по умолчанию для UDP
134 требовалось наличие блока <link id="hc_match">match</link> с параметрами
135 <link id="match_send">send</link> и <link id="match_expect">expect</link>.
136 </note>
137 </tag-desc>
138
139 <tag-name id="health_check_port">
140 <literal>port</literal>=<value>число</value>
141 </tag-name>
142 <tag-desc>
143 задаёт порт, используемый при подключении к серверу
144 для проверки его работоспособности (1.9.7).
145 По умолчанию совпадает с портом
146 <link doc="ngx_stream_upstream_module.xml" id="server">сервера</link>.
147 </tag-desc>
148
149 <tag-name id="health_check_udp">
150 <literal>udp</literal>
151 </tag-name>
152 <tag-desc>
153 указывает, что для проверки работоспособности будет использоваться протокол
154 <literal>UDP</literal>
155 вместо протокола <literal>TCP</literal>, используемого по умолчанию (1.9.13).
156 </tag-desc>
157
158 </list>
159 </para>
160
161 <para>
162 В примере
163 <example>
164 server {
165 proxy_pass backend;
166 health_check;
167 }
168 </example>
169 для каждого сервера группы <literal>backend</literal>
170 с интервалом в 5 секунд проверяется возможность установки TCP-соединения.
171 Если соединение с сервером не может быть установлено,
172 проверка считается неуспешной и сервер
173 признаётся неработоспособным.
174 На неработоспособные серверы и серверы в состоянии “checking”
175 клиентские соединения передаваться не будут.
176 </para>
177
178 <para>
179 Проверки работоспособности могут тестировать данные, полученные от сервера.
180 Тесты настраиваются отдельно при помощи директивы <link id="match"/>
181 и указываются в параметре <literal>match</literal>.
182 </para>
183
184 <para>
185 Группа должна находиться в
186 <link doc="ngx_stream_upstream_module.xml" id="zone">зоне разделяемой памяти</link>.
187 </para>
188
189 <para>
190 Если для группы задано несколько проверок,
191 то при любой неуспешной проверке соответствующий сервер будет
192 считаться неработоспособным.
193 </para>
194
195 </directive>
196
197
198 <directive name="health_check_timeout">
199 <syntax><value>время</value></syntax>
200 <default>5s</default>
201 <context>stream</context>
202 <context>server</context>
203
204 <para>
205 Переопределяет значение
206 <link doc="ngx_stream_proxy_module.xml" id="proxy_timeout"/>
207 для проверок работоспособности.
208 </para>
209
210 </directive>
211
212
213 <directive name="match">
214 <syntax block="yes"><value>имя</value> </syntax>
215 <default/>
216 <context>stream</context>
217
218 <para>
219 Задаёт именованный набор тестов для для анализа ответов сервера
220 на запросы проверки работоспособности.
221 </para>
222
223 <para>
224 Могут быть заданы следующие параметры:
225 <list type="tag">
226
227 <tag-name id="match_send">
228 <literal>send</literal> <value>строка</value>;
229 </tag-name>
230 <tag-desc>
231 отправляет <value>строку</value> на сервер;
232 </tag-desc>
233
234 <tag-name id="match_expect">
235 <literal>expect</literal> <value>стока</value> |
236 <literal>~</literal> <value>regex</value>;
237 </tag-name>
238 <tag-desc>
239 текстовая строка (1.9.12) или регулярное выражение,
240 которым должны соответствовать данные, полученные с сервера.
241 Регулярное выражение задаётся либо с модификатором
242 “<literal>~*</literal>” (для поиска совпадения без учёта регистра символов),
243 либо с модификатором “<literal>~</literal>” (с учётом регистра).
244 </tag-desc>
245
246 </list>
247 Параметры <literal>send</literal> и <literal>expect</literal>
248 могут содержать строки в шестнадцатеричном виде
249 с префиксом “<literal>\x</literal>”
250 и последующими двумя шестнадцатеричными цифрами,
251 например “<literal>\x80</literal>” (1.9.12).
252 </para>
253
254 <para>
255 Проверка работоспособности считается успешной, если
256 <list type="bullet">
257 <listitem>
258 TCP-соединение успешно установлено;
259 </listitem>
260
261 <listitem>
262 <value>строка</value> из параметра <literal>send</literal>
263 была отправлена (если была задана);
264 </listitem>
265
266 <listitem>
267 данные, полученные от сервера, совпали со строкой или регулярным выражением
268 из параметра <literal>expect</literal> (если был задан);
269 </listitem>
270
271 <listitem>
272 истёкшее время не превышает значение, указанное
273 в директиве <link id="health_check_timeout"/>.
274 </listitem>
275
276 </list>
277 </para>
278
279 <para>
280 Пример:
281 <example>
282 upstream backend {
283 zone upstream_backend 10m;
284 server 127.0.0.1:12345;
285 }
286
287 match http {
288 send "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n";
289 expect ~ "200 OK";
290 }
291
292 server {
293 listen 12346;
294 proxy_pass backend;
295 health_check match=http;
296 }
297 </example>
298 </para>
299
300 <para>
301 <note>
302 Проверяются лишь первые байты данных
303 <link doc="ngx_stream_proxy_module.xml" id="proxy_buffer_size"/>,
304 полученные от сервера.
305 </note>
306 </para>
307
308 </directive>
309
310 </section>
311
312 </module>