Mercurial > hg > nginx-site
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 |