comparison xml/ru/docs/stream/ngx_stream_upstream_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 a58b35cc0823
children eb58ee50561d
comparison
equal deleted inserted replaced
1946:37df1535ea91 1947:6b6d0e844bf7
7 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> 7 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
8 8
9 <module name="Модуль ngx_stream_upstream_module" 9 <module name="Модуль ngx_stream_upstream_module"
10 link="/ru/docs/stream/ngx_stream_upstream_module.html" 10 link="/ru/docs/stream/ngx_stream_upstream_module.html"
11 lang="ru" 11 lang="ru"
12 rev="24"> 12 rev="25">
13 13
14 <section id="summary"> 14 <section id="summary">
15 15
16 <para> 16 <para>
17 Модуль <literal>ngx_stream_upstream_module</literal> (1.9.0) 17 Модуль <literal>ngx_stream_upstream_module</literal> (1.9.0)
44 } 44 }
45 </example> 45 </example>
46 </para> 46 </para>
47 47
48 <para> 48 <para>
49 Динамически настраиваемая группа, 49 Динамически настраиваемая группа
50 с периодическими
51 <link doc="ngx_stream_upstream_hc_module.xml">проверками работоспособности</link>
50 доступна как часть 52 доступна как часть
51 <commercial_version>коммерческой подписки</commercial_version>: 53 <commercial_version>коммерческой подписки</commercial_version>:
52 <example> 54 <example>
53 resolver 10.0.0.1; 55 resolver 10.0.0.1;
54 56
296 </tag-name> 298 </tag-name>
297 <tag-desc> 299 <tag-desc>
298 задаёт <value>время</value>, в течение которого вес сервера 300 задаёт <value>время</value>, в течение которого вес сервера
299 восстановится от нуля до своего номинального значения в ситуации, когда 301 восстановится от нуля до своего номинального значения в ситуации, когда
300 неработоспособный (unhealthy) сервер вновь становится работоспособным 302 неработоспособный (unhealthy) сервер вновь становится работоспособным
301 (<link id="health_check">healthy</link>) 303 (<link doc="ngx_http_upstream_hc_module.xml" id="health_check">healthy</link>)
302 или когда сервер становится доступным по прошествии времени, 304 или когда сервер становится доступным по прошествии времени,
303 в течение которого он считался <link id="fail_timeout">недоступным</link>. 305 в течение которого он считался <link id="fail_timeout">недоступным</link>.
304 Значение по умолчанию равно нулю и означает, что медленный старт выключен. 306 Значение по умолчанию равно нулю и означает, что медленный старт выключен.
305 <note> 307 <note>
306 Параметр нельзя использовать совместно с 308 Параметр нельзя использовать совместно с
489 </note> 491 </note>
490 </para> 492 </para>
491 493
492 </directive> 494 </directive>
493 495
494
495 <directive name="health_check">
496 <syntax>[<value>параметры</value>]</syntax>
497 <default/>
498 <context>server</context>
499
500 <para>
501 Активирует периодические проверки работоспособности серверов в
502 <link id="upstream">группе</link>.
503 </para>
504
505 <para>
506 Могут быть заданы следующие необязательные параметры:
507 <list type="tag">
508
509 <tag-name id="interval">
510 <literal>interval</literal>=<value>время</value>
511 </tag-name>
512 <tag-desc>
513 задаёт интервал между двумя последовательными проверками,
514 по умолчанию 5 секунд.
515 </tag-desc>
516
517 <tag-name id="health_check_jitter">
518 <literal>jitter</literal>=<value>время</value>
519 </tag-name>
520 <tag-desc>
521 задаёт время, в пределах которого
522 случайным образом задерживается каждая проверка,
523 по умолчанию задержки нет.
524 </tag-desc>
525
526 <tag-name id="fails">
527 <literal>fails</literal>=<value>число</value>
528 </tag-name>
529 <tag-desc>
530 задаёт число последовательных неуспешных проверок для определённого сервера,
531 после которых сервер будет считаться неработоспособным,
532 по умолчанию 1.
533 </tag-desc>
534
535 <tag-name id="passes">
536 <literal>passes</literal>=<value>число</value>
537 </tag-name>
538 <tag-desc>
539 задаёт число последовательных успешных проверок для определённого сервера,
540 после которых сервер будет считаться работоспособным,
541 по умолчанию 1.
542 </tag-desc>
543
544 <tag-name id="health_check_mandatory">
545 <literal>mandatory</literal>
546 </tag-name>
547 <tag-desc>
548 устанавливает исходное состояние “checking” для сервера
549 до завершения первой проверки работоспособности (1.11.7).
550 Если параметр не указан,
551 то исходно сервер будет считаться работоспособным.
552 </tag-desc>
553
554 <tag-name id="hc_match">
555 <literal>match</literal>=<value>имя</value>
556 </tag-name>
557 <tag-desc>
558 указывает на блок <literal>match</literal> с условиями, которым должно
559 удовлетворять соединение, чтобы результат проверки считался успешным.
560 По умолчанию для TCP проверяется
561 лишь возможность установки TCP-соединения с сервером,
562 для <link id="health_check_udp">UDP</link> проверяется отсутствие
563 сообщения ICMP “<literal>Destination Unreachable</literal>”
564 в ответ на отправленную строку “<literal>nginx health check</literal>”.
565 <note>
566 До версии 1.11.7 по умолчанию для UDP
567 требовалось наличие блока <link id="hc_match">match</link> с параметрами
568 <link id="match_send">send</link> и <link id="match_expect">expect</link>.
569 </note>
570 </tag-desc>
571
572 <tag-name id="health_check_port">
573 <literal>port</literal>=<value>число</value>
574 </tag-name>
575 <tag-desc>
576 задаёт порт, используемый при подключении к серверу
577 для проверки его работоспособности (1.9.7).
578 По умолчанию совпадает с портом <link id="server">сервера</link>.
579 </tag-desc>
580
581 <tag-name id="health_check_udp">
582 <literal>udp</literal>
583 </tag-name>
584 <tag-desc>
585 указывает, что для проверки работоспособности будет использоваться протокол
586 <literal>UDP</literal>
587 вместо протокола <literal>TCP</literal>, используемого по умолчанию (1.9.13).
588 </tag-desc>
589
590 </list>
591 </para>
592
593 <para>
594 В примере
595 <example>
596 server {
597 proxy_pass backend;
598 health_check;
599 }
600 </example>
601 для каждого сервера группы <literal>backend</literal>
602 с интервалом в 5 секунд проверяется возможность установки TCP-соединения.
603 Если соединение с сервером не может быть установлено,
604 проверка считается неуспешной и сервер
605 признаётся неработоспособным.
606 На неработоспособные серверы и серверы в состоянии “checking”
607 клиентские соединения передаваться не будут.
608 </para>
609
610 <para>
611 Проверки работоспособности могут тестировать данные, полученные от сервера.
612 Тесты настраиваются отдельно при помощи директивы <link id="match"/>
613 и указываются в параметре <literal>match</literal>.
614 </para>
615
616 <para>
617 Группа должна находиться в <link id="zone">зоне разделяемой памяти</link>.
618 </para>
619
620 <para>
621 Если для группы задано несколько проверок,
622 то при любой неуспешной проверке соответствующий сервер будет
623 считаться неработоспособным.
624 </para>
625
626 <para>
627 <note>
628 Эта директива доступна как часть
629 <commercial_version>коммерческой подписки</commercial_version>.
630 </note>
631 </para>
632
633 </directive>
634
635
636 <directive name="health_check_timeout">
637 <syntax><value>время</value></syntax>
638 <default>5s</default>
639 <context>stream</context>
640 <context>server</context>
641
642 <para>
643 Переопределяет значение
644 <link doc="ngx_stream_proxy_module.xml" id="proxy_timeout"/>
645 для проверок работоспособности.
646 </para>
647
648 <para>
649 <note>
650 Эта директива доступна как часть
651 <commercial_version>коммерческой подписки</commercial_version>.
652 </note>
653 </para>
654
655 </directive>
656
657
658 <directive name="match">
659 <syntax block="yes"><value>имя</value> </syntax>
660 <default/>
661 <context>stream</context>
662
663 <para>
664 Задаёт именованный набор тестов для для анализа ответов сервера
665 на запросы проверки работоспособности.
666 </para>
667
668 <para>
669 Могут быть заданы следующие параметры:
670 <list type="tag">
671
672 <tag-name id="match_send">
673 <literal>send</literal> <value>строка</value>;
674 </tag-name>
675 <tag-desc>
676 отправляет <value>строку</value> на сервер;
677 </tag-desc>
678
679 <tag-name id="match_expect">
680 <literal>expect</literal> <value>стока</value> |
681 <literal>~</literal> <value>regex</value>;
682 </tag-name>
683 <tag-desc>
684 текстовая строка (1.9.12) или регулярное выражение,
685 которым должны соответствовать данные, полученные с сервера.
686 Регулярное выражение задаётся либо с модификатором
687 “<literal>~*</literal>” (для поиска совпадения без учёта регистра символов),
688 либо с модификатором “<literal>~</literal>” (с учётом регистра).
689 </tag-desc>
690
691 </list>
692 Параметры <literal>send</literal> и <literal>expect</literal>
693 могут содержать строки в шестнадцатеричном виде
694 с префиксом “<literal>\x</literal>”
695 и последующими двумя шестнадцатеричными цифрами,
696 например “<literal>\x80</literal>” (1.9.12).
697 </para>
698
699 <para>
700 Проверка работоспособности считается успешной, если
701 <list type="bullet">
702 <listitem>
703 TCP-соединение успешно установлено;
704 </listitem>
705
706 <listitem>
707 <value>строка</value> из параметра <literal>send</literal>
708 была отправлена (если была задана);
709 </listitem>
710
711 <listitem>
712 данные, полученные от сервера, совпали со строкой или регулярным выражением
713 из параметра <literal>expect</literal> (если был задан);
714 </listitem>
715
716 <listitem>
717 истёкшее время не превышает значение, указанное
718 в директиве <link id="health_check_timeout"/>.
719 </listitem>
720
721 </list>
722 </para>
723
724 <para>
725 Пример:
726 <example>
727 upstream backend {
728 zone upstream_backend 10m;
729 server 127.0.0.1:12345;
730 }
731
732 match http {
733 send "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n";
734 expect ~ "200 OK";
735 }
736
737 server {
738 listen 12346;
739 proxy_pass backend;
740 health_check match=http;
741 }
742 </example>
743 </para>
744
745 <para>
746 <note>
747 Проверяются лишь первые байты данных
748 <link doc="ngx_stream_proxy_module.xml" id="proxy_buffer_size"/>,
749 полученные от сервера.
750 </note>
751 </para>
752
753 <para>
754 <note>
755 Эта директива доступна как часть
756 <commercial_version>коммерческой подписки</commercial_version>.
757 </note>
758 </para>
759
760 </directive>
761
762 </section> 496 </section>
763 497
764 498
765 <section id="variables" name="Встроенные переменные"> 499 <section id="variables" name="Встроенные переменные">
766 500