Mercurial > hg > nginx-site
comparison xml/ru/docs/stream/ngx_stream_upstream_module.xml @ 1728:f93a5aadad2c
Translated the stream upstream module into Russian.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Thu, 11 Jun 2015 19:06:06 +0300 |
parents | xml/en/docs/stream/ngx_stream_upstream_module.xml@1a16dce51bce |
children | ab56dcd73af2 |
comparison
equal
deleted
inserted
replaced
1727:1a16dce51bce | 1728:f93a5aadad2c |
---|---|
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_module" | |
10 link="/ru/docs/stream/ngx_stream_upstream_module.html" | |
11 lang="ru" | |
12 rev="13"> | |
13 | |
14 <section id="summary"> | |
15 | |
16 <para> | |
17 Модуль <literal>ngx_stream_upstream_module</literal> (1.9.0) | |
18 позволяет описывать группы серверов, | |
19 которые могут использоваться в директиве | |
20 <link doc="ngx_stream_proxy_module.xml" id="proxy_pass"/>. | |
21 </para> | |
22 | |
23 </section> | |
24 | |
25 | |
26 <section id="example" name="Пример конфигурации"> | |
27 | |
28 <para> | |
29 <example> | |
30 upstream <emphasis>backend</emphasis> { | |
31 hash $remote_addr consistent; | |
32 | |
33 server backend1.example.com:12345 weight=5; | |
34 server backend2.example.com:12345; | |
35 server unix:/tmp/backend3; | |
36 | |
37 server backup1.example.com:12345 backup; | |
38 server backup2.example.com:12345 backup; | |
39 } | |
40 | |
41 server { | |
42 listen 12346; | |
43 proxy_pass <emphasis>backend</emphasis>; | |
44 } | |
45 </example> | |
46 </para> | |
47 | |
48 <para> | |
49 Динамически настраиваемая группа, | |
50 доступна как часть | |
51 <commercial_version>коммерческой подписки</commercial_version>: | |
52 <example> | |
53 resolver 10.0.0.1; | |
54 | |
55 upstream <emphasis>dynamic</emphasis> { | |
56 zone upstream_dynamic 64k; | |
57 | |
58 server backend1.example.com:12345 weight=5; | |
59 server backend2.example.com:12345 fail_timeout=5s slow_start=30s; | |
60 server 192.0.2.1:12345 max_fails=3; | |
61 server backend3.example.com:12345 resolve; | |
62 server backend4.example.com service=http resolve; | |
63 | |
64 server backup1.example.com:12345 backup; | |
65 server backup2.example.com:12345 backup; | |
66 } | |
67 | |
68 server { | |
69 listen 12346; | |
70 proxy_pass <emphasis>dynamic</emphasis>; | |
71 health_check; | |
72 } | |
73 </example> | |
74 </para> | |
75 | |
76 </section> | |
77 | |
78 | |
79 <section id="directives" name="Директивы"> | |
80 | |
81 <directive name="upstream"> | |
82 <syntax block="yes"><value>название</value></syntax> | |
83 <default/> | |
84 <context>stream</context> | |
85 | |
86 <para> | |
87 Описывает группу серверов. | |
88 Серверы могут слушать на разных портах. | |
89 Кроме того, можно одновременно использовать серверы, | |
90 слушающие на TCP- и UNIX-сокетах. | |
91 </para> | |
92 | |
93 <para> | |
94 Пример: | |
95 <example> | |
96 upstream backend { | |
97 server backend1.example.com:12345 weight=5; | |
98 server 127.0.0.1:12345 max_fails=3 fail_timeout=30s; | |
99 server unix:/tmp/backend2; | |
100 server backend3.example.com:12345 resolve; | |
101 | |
102 server backup1.example.com:12345 backup; | |
103 } | |
104 </example> | |
105 </para> | |
106 | |
107 <para> | |
108 По умолчанию соединения распределяются по серверам циклически | |
109 (в режиме round-robin) с учётом весов серверов. | |
110 В вышеприведённом примере каждые 7 соединений будут распределены так: | |
111 5 соединений на <literal>backend1.example.com:12345</literal> | |
112 и по одному соединению на второй и третий серверы. | |
113 Если при попытке работы с сервером происходит ошибка, то соединение | |
114 передаётся следующему серверу, и так далее до тех пор, пока не будут опробованы | |
115 все работающие серверы. | |
116 Если связь с серверами не удалась, соединение будет закрыто. | |
117 </para> | |
118 | |
119 </directive> | |
120 | |
121 | |
122 <directive name="server"> | |
123 <syntax><value>адрес</value> [<value>параметры</value>]</syntax> | |
124 <default/> | |
125 <context>upstream</context> | |
126 | |
127 <para> | |
128 Задаёт <value>адрес</value> и другие <value>параметры</value> | |
129 сервера. | |
130 Адрес может быть указан в виде доменного имени или IP-адреса, | |
131 и обязательного порта, или в виде пути UNIX-сокета, который | |
132 указывается после префикса “<literal>unix:</literal>”. | |
133 Доменное имя, которому соответствует несколько IP-адресов, | |
134 задаёт сразу несколько серверов. | |
135 </para> | |
136 | |
137 <para> | |
138 Могут быть заданы следующие параметры: | |
139 <list type="tag"> | |
140 | |
141 <tag-name id="weight"> | |
142 <literal>weight</literal>=<value>число</value> | |
143 </tag-name> | |
144 <tag-desc> | |
145 задаёт вес сервера, по умолчанию 1. | |
146 </tag-desc> | |
147 | |
148 <tag-name id="max_fails"> | |
149 <literal>max_fails</literal>=<value>число</value> | |
150 </tag-name> | |
151 <tag-desc> | |
152 задаёт число неудачных попыток работы с сервером, которые должны произойти | |
153 в течение времени, заданного параметром <literal>fail_timeout</literal>, | |
154 чтобы сервер считался недоступным на период времени, также заданный | |
155 параметром <literal>fail_timeout</literal>. | |
156 По умолчанию число попыток устанавливается равным 1. | |
157 Нулевое значение отключает учёт попыток. | |
158 В данном случае неудачной попыткой считается ошибка или таймаут | |
159 при установке соединения с сервером. | |
160 </tag-desc> | |
161 | |
162 <tag-name id="fail_timeout"> | |
163 <literal>fail_timeout</literal>=<value>время</value> | |
164 </tag-name> | |
165 <tag-desc> | |
166 задаёт | |
167 <list type="bullet"> | |
168 | |
169 <listitem> | |
170 время, в течение которого должно произойти заданное число неудачных | |
171 попыток работы с сервером для того, чтобы сервер считался недоступным; | |
172 </listitem> | |
173 | |
174 <listitem> | |
175 и время, в течение которого сервер будет считаться недоступным. | |
176 </listitem> | |
177 | |
178 </list> | |
179 По умолчанию параметр равен 10 секундам. | |
180 </tag-desc> | |
181 | |
182 <tag-name id="backup"> | |
183 <literal>backup</literal> | |
184 </tag-name> | |
185 <tag-desc> | |
186 помечает сервер как запасной сервер. | |
187 На него будут передаваться соединения в случае, | |
188 если не работают основные серверы. | |
189 </tag-desc> | |
190 | |
191 <tag-name id="down"> | |
192 <literal>down</literal> | |
193 </tag-name> | |
194 <tag-desc> | |
195 помечает сервер как постоянно недоступный. | |
196 </tag-desc> | |
197 | |
198 </list> | |
199 </para> | |
200 | |
201 <para> | |
202 Кроме того, | |
203 следующие параметры доступны как часть | |
204 <commercial_version>коммерческой подписки</commercial_version>: | |
205 <list type="tag"> | |
206 | |
207 <tag-name id="max_conns"> | |
208 <literal>max_conns</literal>=<value>число</value> | |
209 </tag-name> | |
210 <tag-desc> | |
211 ограничивает максимальное <value>число</value> одновременных | |
212 соединений к проксируемому серверу. | |
213 Значение по умолчанию равно 0 и означает, что ограничения нет. | |
214 </tag-desc> | |
215 | |
216 <tag-name id="resolve"> | |
217 <literal>resolve</literal> | |
218 </tag-name> | |
219 <tag-desc> | |
220 отслеживает изменения IP-адресов, соответствующих доменному имени сервера, | |
221 и автоматически изменяет конфигурацию группы | |
222 без необходимости перезапуска nginx. | |
223 Группа должна находиться в <link id="zone">зоне разделяемой памяти</link>. | |
224 <para> | |
225 Для работы этого параметра | |
226 директива <link doc="ngx_stream_core_module.xml" id="resolver"/> | |
227 должна быть задана в блоке | |
228 <link doc="ngx_stream_core_module.xml" id="stream"/>. | |
229 Пример: | |
230 <example> | |
231 stream { | |
232 resolver 10.0.0.1; | |
233 | |
234 upstream u { | |
235 zone ...; | |
236 ... | |
237 server example.com:12345 resolve; | |
238 } | |
239 } | |
240 </example> | |
241 </para> | |
242 </tag-desc> | |
243 | |
244 <tag-name id="service"> | |
245 <literal>service</literal>=<value>имя</value> | |
246 </tag-name> | |
247 <tag-desc> | |
248 включает преобразование | |
249 <link url="https://tools.ietf.org/html/rfc2782">SRV</link>-записей | |
250 DNS и задаёт <value>имя</value> сервиса (1.9.13). | |
251 Для работы параметра необходимо указать | |
252 параметр <link id="resolve"/> для сервера | |
253 и не указывать порт сервера. | |
254 <para> | |
255 Если имя сервиса не содержит точку (“<literal>.</literal>”), то | |
256 имя составляется в соответствии с | |
257 <link url="https://tools.ietf.org/html/rfc2782">RFC</link> | |
258 и в префикс службы добавляется протокол TCP. | |
259 Например, для получения | |
260 SRV-записи <literal>_http._tcp.backend.example.com</literal> | |
261 необходимо указать директиву: | |
262 <example> | |
263 server backend.example.com service=http resolve; | |
264 </example> | |
265 Если имя сервиса содержит одну и более точек, то имя составляется | |
266 при помощи соединения префикса службы и имени сервера. | |
267 Например, для получения SRV-записей | |
268 <literal>_http._tcp.backend.example.com</literal> | |
269 и <literal>server1.backend.example.com</literal> | |
270 необходимо указать директивы: | |
271 <example> | |
272 server backend.example.com service=_http._tcp resolve; | |
273 server example.com service=server1.backend resolve; | |
274 </example> | |
275 </para> | |
276 | |
277 <para> | |
278 SRV-записи с наивысшим приоритетом | |
279 (записи с одинаковым наименьшим значением приоритета) | |
280 преобразуются в основные серверы, | |
281 остальные SRV-записи преобразуются в запасные серверы. | |
282 Если в конфигурации сервера указан параметр <link id="backup"/>, | |
283 высокоприоритетные SRV-записи преобразуются в запасные серверы, | |
284 остальные SRV-записи игнорируются. | |
285 </para> | |
286 </tag-desc> | |
287 | |
288 <tag-name id="slow_start"> | |
289 <literal>slow_start</literal>=<value>время</value> | |
290 </tag-name> | |
291 <tag-desc> | |
292 задаёт <value>время</value>, в течение которого вес сервера | |
293 восстановится от нуля до своего номинального значения в ситуации, когда | |
294 неработоспособный (unhealthy) сервер вновь становится работоспособным | |
295 (<link id="health_check">healthy</link>) | |
296 или когда сервер становится доступным по прошествии времени, | |
297 в течение которого он считался <link id="fail_timeout">недоступным</link>. | |
298 Значение по умолчанию равно нулю и означает, что медленный старт выключен. | |
299 </tag-desc> | |
300 | |
301 </list> | |
302 </para> | |
303 | |
304 <para> | |
305 <note> | |
306 Если в группе только один сервер, параметры <literal>max_fails</literal>, | |
307 <literal>fail_timeout</literal> и <literal>slow_start</literal> | |
308 игнорируются и такой сервер никогда не будет считаться недоступным. | |
309 </note> | |
310 </para> | |
311 | |
312 </directive> | |
313 | |
314 | |
315 <directive name="zone"> | |
316 <syntax><value>имя</value> [<value>размер</value>]</syntax> | |
317 <default/> | |
318 <context>upstream</context> | |
319 | |
320 <para> | |
321 Задаёт <value>имя</value> и <value>размер</value> зоны разделяемой памяти, | |
322 в которой хранятся конфигурация группы и её рабочее состояние, | |
323 разделяемые между рабочими процессами. | |
324 В одной и той же зоне могут быть сразу несколько групп. | |
325 В этом случае достаточно указать <value>размер</value> только один раз. | |
326 </para> | |
327 | |
328 <para> | |
329 Дополнительно, как часть | |
330 <commercial_version>коммерческой подписки</commercial_version>, | |
331 в таких группах для изменения состава группы | |
332 или настроек отдельных серверов | |
333 нет необходимости перезапускать nginx. | |
334 Конфигурация доступна через специальный location, | |
335 в котором указана директива | |
336 <link doc="../http/ngx_http_upstream_conf_module.xml" id="upstream_conf"/>. | |
337 </para> | |
338 | |
339 </directive> | |
340 | |
341 | |
342 <directive name="state"> | |
343 <syntax><value>файл</value></syntax> | |
344 <default/> | |
345 <context>upstream</context> | |
346 <appeared-in>1.9.7</appeared-in> | |
347 | |
348 <para> | |
349 Задаёт <value>файл</value>, в котором хранится состояние | |
350 динамически настраиваемой группы. | |
351 В данный момент состояние ограничено списком серверов с их параметрами. | |
352 Файл читается при парсинге конфигурации и обновляется каждый раз при | |
353 <link doc="ngx_http_upstream_conf_module.xml" id="upstream_conf">изменении</link> | |
354 конфигурации группы. | |
355 Изменение содержимого файла напрямую не рекомендуется. | |
356 Директиву нельзя использовать | |
357 совместно с директивой <link id="server"/>. | |
358 </para> | |
359 | |
360 <para> | |
361 <note> | |
362 Изменения, совершённые в момент | |
363 <link doc="../control.xml" id="reconfiguration">перезагрузки конфигурации</link> | |
364 или <link doc="../control.xml" id="upgrade">обновления бинарного файла</link>, | |
365 могут быть потеряны. | |
366 </note> | |
367 </para> | |
368 | |
369 <para> | |
370 <note> | |
371 Эта директива доступна как часть | |
372 <commercial_version>коммерческой подписки</commercial_version>. | |
373 </note> | |
374 </para> | |
375 | |
376 </directive> | |
377 | |
378 | |
379 <directive name="hash"> | |
380 <syntax><value>ключ</value> [<literal>consistent</literal>]</syntax> | |
381 <default/> | |
382 <context>upstream</context> | |
383 | |
384 <para> | |
385 Задаёт метод балансировки нагрузки для группы, при котором | |
386 соответствие клиента серверу определяется при помощи | |
387 хэшированного значения <value>ключа</value>. | |
388 В настоящий момент единственно возможным значением для <literal>ключа</literal> | |
389 является удалённый адрес клиента, | |
390 указываемый как <literal>$remote_addr</literal>. | |
391 Следует отметить, что любое добавление или удаление серверов в группе | |
392 может привести к перераспределению большинства ключей на другие серверы. | |
393 Метод совместим с библиотекой Perl | |
394 <link url="http://search.cpan.org/perldoc?Cache%3A%3AMemcached">Cache::Memcached</link>. | |
395 </para> | |
396 | |
397 <para> | |
398 Если задан параметр <literal>consistent</literal>, то вместо | |
399 вышеописанного метода будет использоваться метод консистентного хэширования | |
400 <link url="http://www.last.fm/user/RJ/journal/2007/04/10/392555/">ketama</link>. | |
401 Метод гарантирует, что при добавлении сервера в группу или его удалении | |
402 на другие серверы будет перераспределено минимальное число ключей. | |
403 Применение метода для кэширующих серверов обеспечивает | |
404 больший процент попаданий в кэш. | |
405 Метод совместим с библиотекой Perl | |
406 <link url="http://search.cpan.org/perldoc?Cache%3A%3AMemcached%3A%3AFast">Cache::Memcached::Fast</link> | |
407 при значении параметра <value>ketama_points</value> равным 160. | |
408 </para> | |
409 | |
410 </directive> | |
411 | |
412 | |
413 <directive name="least_conn"> | |
414 <syntax/> | |
415 <default/> | |
416 <context>upstream</context> | |
417 | |
418 <para> | |
419 Задаёт для группы метод балансировки нагрузки, при котором соединение | |
420 передаётся серверу с наименьшим числом активных соединений, | |
421 с учётом весов серверов. | |
422 Если подходит сразу несколько серверов, они выбираются циклически | |
423 (в режиме round-robin) с учётом их весов. | |
424 </para> | |
425 | |
426 </directive> | |
427 | |
428 | |
429 <directive name="least_time"> | |
430 <syntax><literal>connect</literal> | | |
431 <literal>first_byte</literal> | | |
432 <literal>last_byte</literal></syntax> | |
433 <default/> | |
434 <context>upstream</context> | |
435 | |
436 <para> | |
437 Задаёт для группы метод балансировки нагрузки, при котором соединение | |
438 передаётся серверу с наименьшими средним временем ответа и | |
439 числом активных соединений с учётом весов серверов. | |
440 Если подходит сразу несколько серверов, то они выбираются циклически | |
441 (в режиме round-robin) с учётом их весов. | |
442 </para> | |
443 | |
444 <para> | |
445 Если указан параметр <literal>connect</literal>, | |
446 то учитывается время соединения с сервером группы. | |
447 Если указан параметр <literal>first_byte</literal>, | |
448 то учитывается время получения первого байта данных. | |
449 Если указан параметр <literal>last_byte</literal>, | |
450 то учитывается время получения ответа. | |
451 </para> | |
452 | |
453 <para> | |
454 <note> | |
455 Эта директива доступна как часть | |
456 <commercial_version>коммерческой подписки</commercial_version>. | |
457 </note> | |
458 </para> | |
459 | |
460 </directive> | |
461 | |
462 | |
463 <directive name="health_check"> | |
464 <syntax>[<value>параметры</value>]</syntax> | |
465 <default/> | |
466 <context>server</context> | |
467 | |
468 <para> | |
469 Активирует периодические проверки работоспособности серверов в | |
470 <link id="upstream">группе</link>. | |
471 </para> | |
472 | |
473 <para> | |
474 Могут быть заданы следующие необязательные параметры: | |
475 <list type="tag"> | |
476 | |
477 <tag-name id="interval"> | |
478 <literal>interval</literal>=<value>время</value> | |
479 </tag-name> | |
480 <tag-desc> | |
481 задаёт интервал между двумя последовательными проверками, | |
482 по умолчанию 5 секунд; | |
483 </tag-desc> | |
484 | |
485 <tag-name id="fails"> | |
486 <literal>fails</literal>=<value>число</value> | |
487 </tag-name> | |
488 <tag-desc> | |
489 задаёт число последовательных неуспешных проверок для определённого сервера, | |
490 после которых сервер будет считаться неработоспособным, | |
491 по умолчанию 1; | |
492 </tag-desc> | |
493 | |
494 <tag-name id="passes"> | |
495 <literal>passes</literal>=<value>число</value> | |
496 </tag-name> | |
497 <tag-desc> | |
498 задаёт число последовательных успешных проверок для определённого сервера, | |
499 после которых сервер будет считаться работоспособным, | |
500 по умолчанию 1; | |
501 </tag-desc> | |
502 | |
503 <tag-name id="hc_match"> | |
504 <literal>match</literal>=<value>имя</value> | |
505 </tag-name> | |
506 <tag-desc> | |
507 указывает на блок <literal>match</literal> с условиями, которым должно | |
508 удовлетворять соединение, чтобы результат проверки считался успешным; | |
509 по умолчанию проверяется лишь возможность установки TCP-соединения с сервером; | |
510 </tag-desc> | |
511 | |
512 <tag-name id="health_check_port"> | |
513 <literal>port</literal>=<value>число</value> | |
514 </tag-name> | |
515 <tag-desc> | |
516 задаёт порт, используемый при подключении к серверу | |
517 для проверки его работоспособности (1.9.7); | |
518 по умолчанию совпадает с портом <link id="server">сервера</link>. | |
519 </tag-desc> | |
520 | |
521 <tag-name id="health_check_udp"> | |
522 <literal>udp</literal> | |
523 </tag-name> | |
524 <tag-desc> | |
525 указывает, что для проверки работоспособности будет использоваться протокол | |
526 <literal>UDP</literal> | |
527 вместо протокола <literal>TCP</literal>, используемого по умолчанию (1.9.13); | |
528 тебует наличия блока <link id="hc_match">match</link> с параметрами | |
529 <link id="match_send">send</link> и <link id="match_expect">expect</link>. | |
530 </tag-desc> | |
531 | |
532 </list> | |
533 </para> | |
534 | |
535 <para> | |
536 В примере | |
537 <example> | |
538 server { | |
539 proxy_pass backend; | |
540 health_check; | |
541 } | |
542 </example> | |
543 для каждого сервера группы <literal>backend</literal> | |
544 с интервалом в 5 секунд проверяется возможность установки TCP-соединения. | |
545 Если соединение с сервером не может быть установлено, | |
546 проверка считается неуспешной и сервер | |
547 признаётся неработоспособным. | |
548 На неработоспособные серверы клиентские соединения передаваться не будут. | |
549 </para> | |
550 | |
551 <para> | |
552 Проверки работоспособности могут тестировать данные, полученные от сервера. | |
553 Тесты настраиваются отдельно при помощи директивы <link id="match"/> | |
554 и указываются в параметре <literal>match</literal>. | |
555 </para> | |
556 | |
557 <para> | |
558 Группа должна находиться в <link id="zone">зоне разделяемой памяти</link>. | |
559 </para> | |
560 | |
561 <para> | |
562 Если для группы задано несколько проверок, | |
563 то при любой неуспешной проверке соответствующий сервер будет | |
564 считаться неработоспособным. | |
565 </para> | |
566 | |
567 <para> | |
568 <note> | |
569 Эта директива доступна как часть | |
570 <commercial_version>коммерческой подписки</commercial_version>. | |
571 </note> | |
572 </para> | |
573 | |
574 </directive> | |
575 | |
576 | |
577 <directive name="health_check_timeout"> | |
578 <syntax><value>время</value></syntax> | |
579 <default>5s</default> | |
580 <context>stream</context> | |
581 <context>server</context> | |
582 | |
583 <para> | |
584 Переопределяет значение | |
585 <link doc="ngx_stream_proxy_module.xml" id="proxy_timeout"/> | |
586 для проверок работоспособности. | |
587 </para> | |
588 | |
589 <para> | |
590 <note> | |
591 Эта директива доступна как часть | |
592 <commercial_version>коммерческой подписки</commercial_version>. | |
593 </note> | |
594 </para> | |
595 | |
596 </directive> | |
597 | |
598 | |
599 <directive name="match"> | |
600 <syntax block="yes"><value>имя</value> </syntax> | |
601 <default/> | |
602 <context>stream</context> | |
603 | |
604 <para> | |
605 Задаёт именованный набор тестов для для анализа ответов сервера | |
606 на запросы проверки работоспособности. | |
607 </para> | |
608 | |
609 <para> | |
610 Могут быть заданы следующие параметры: | |
611 <list type="tag"> | |
612 | |
613 <tag-name id="match_send"> | |
614 <literal>send</literal> <value>строка</value>; | |
615 </tag-name> | |
616 <tag-desc> | |
617 отправляет <value>строку</value> на сервер; | |
618 </tag-desc> | |
619 | |
620 <tag-name id="match_expect"> | |
621 <literal>expect</literal> <value>стока</value> | | |
622 <literal>~</literal> <value>regex</value>; | |
623 </tag-name> | |
624 <tag-desc> | |
625 текстовая строка (1.9.12) или регулярное выражение, | |
626 которым должны соответствовать данные, полученные с сервера. | |
627 Регулярное выражение задаётся либо с модификатором | |
628 “<literal>~*</literal>” (для поиска совпадения без учёта регистра символов), | |
629 либо с модификатором “<literal>~</literal>” (с учётом регистра). | |
630 </tag-desc> | |
631 | |
632 </list> | |
633 Параметры <literal>send</literal> и <literal>expect</literal> | |
634 могут содержать строки в шестнадцатеричном виде | |
635 с префиксом “<literal>\x</literal>” | |
636 и последующими двумя шестнадцатеричными цифрами, | |
637 например “<literal>\x80</literal>” (1.9.12). | |
638 </para> | |
639 | |
640 <para> | |
641 Проверка работоспособности считается успешной, если | |
642 <list type="bullet"> | |
643 <listitem> | |
644 TCP-соединение успешно установлено; | |
645 </listitem> | |
646 | |
647 <listitem> | |
648 <value>строка</value> из параметра <literal>send</literal> | |
649 была отправлена (если была задана); | |
650 </listitem> | |
651 | |
652 <listitem> | |
653 данные, полученные от сервера, совпали со строкой или регулярным выражением | |
654 из параметра <literal>expect</literal> (если был задан); | |
655 </listitem> | |
656 | |
657 <listitem> | |
658 истёкшее время не превышает значение, указанное | |
659 в директиве <link id="health_check_timeout"/>. | |
660 </listitem> | |
661 | |
662 </list> | |
663 </para> | |
664 | |
665 <para> | |
666 Пример: | |
667 <example> | |
668 upstream backend { | |
669 zone upstream_backend 10m; | |
670 server 127.0.0.1:12345; | |
671 } | |
672 | |
673 match http { | |
674 send "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n"; | |
675 expect ~ "200 OK"; | |
676 } | |
677 | |
678 server { | |
679 listen 12346; | |
680 proxy_pass backend; | |
681 health_check match=http; | |
682 } | |
683 </example> | |
684 </para> | |
685 | |
686 <para> | |
687 <note> | |
688 Проверяются лишь первые байты данных | |
689 <link doc="ngx_stream_proxy_module.xml" id="proxy_buffer_size"/>, | |
690 полученные от сервера. | |
691 </note> | |
692 </para> | |
693 | |
694 <para> | |
695 <note> | |
696 Эта директива доступна как часть | |
697 <commercial_version>коммерческой подписки</commercial_version>. | |
698 </note> | |
699 </para> | |
700 | |
701 </directive> | |
702 | |
703 </section> | |
704 | |
705 </module> |