changeset 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 37df1535ea91
children 25962922969a
files xml/en/GNUmakefile xml/en/docs/http/ngx_http_status_module.xml xml/en/docs/index.xml xml/en/docs/stream/ngx_stream_upstream_hc_module.xml xml/en/docs/stream/ngx_stream_upstream_module.xml xml/ru/GNUmakefile xml/ru/docs/http/ngx_http_status_module.xml xml/ru/docs/index.xml xml/ru/docs/stream/ngx_stream_upstream_hc_module.xml xml/ru/docs/stream/ngx_stream_upstream_module.xml
diffstat 10 files changed, 650 insertions(+), 547 deletions(-) [+]
line wrap: on
line diff
--- a/xml/en/GNUmakefile	Thu Mar 30 21:26:44 2017 +0300
+++ b/xml/en/GNUmakefile	Fri Mar 24 19:48:53 2017 +0300
@@ -113,6 +113,7 @@
 		stream/ngx_stream_ssl_module				\
 		stream/ngx_stream_ssl_preread_module			\
 		stream/ngx_stream_upstream_module			\
+		stream/ngx_stream_upstream_hc_module			\
 		stream/stream_processing				\
 		ngx_google_perftools_module				\
 		dev/development_guide					\
--- a/xml/en/docs/http/ngx_http_status_module.xml	Thu Mar 30 21:26:44 2017 +0300
+++ b/xml/en/docs/http/ngx_http_status_module.xml	Fri Mar 24 19:48:53 2017 +0300
@@ -9,7 +9,7 @@
 <module name="Module ngx_http_status_module"
         link="/en/docs/http/ngx_http_status_module.html"
         lang="en"
-        rev="15">
+        rev="16">
 
 <section id="summary">
 
@@ -961,7 +961,7 @@
 <tag-name><literal>checks</literal></tag-name>
 <tag-desc>
 The total number of
-<link doc="../stream/ngx_stream_upstream_module.xml" id="health_check">health check</link>
+<link doc="../stream/ngx_stream_upstream_hc_module.xml" id="health_check">health check</link>
 requests made.
 </tag-desc>
 
@@ -980,7 +980,7 @@
 <tag-desc>
 Boolean indicating
 if the last health check request was successful and passed
-<link doc="../stream/ngx_stream_upstream_module.xml" id="match">tests</link>.
+<link doc="../stream/ngx_stream_upstream_hc_module.xml" id="match">tests</link>.
 </tag-desc>
 
 </list>
--- a/xml/en/docs/index.xml	Thu Mar 30 21:26:44 2017 +0300
+++ b/xml/en/docs/index.xml	Fri Mar 24 19:48:53 2017 +0300
@@ -8,7 +8,7 @@
 <article name="nginx documentation"
          link="/en/docs/"
          lang="en"
-         rev="38"
+         rev="39"
          toc="no">
 
 
@@ -591,6 +591,11 @@
 ngx_stream_upstream_module</link>
 </listitem>
 
+<listitem>
+<link doc="stream/ngx_stream_upstream_hc_module.xml">
+ngx_stream_upstream_hc_module</link>
+</listitem>
+
 </list>
 </para>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/en/docs/stream/ngx_stream_upstream_hc_module.xml	Fri Mar 24 19:48:53 2017 +0300
@@ -0,0 +1,309 @@
+<?xml version="1.0"?>
+
+<!--
+  Copyright (C) Nginx, Inc.
+  -->
+
+<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
+
+<module name="Module ngx_stream_upstream_hc_module"
+        link="/en/docs/stream/ngx_stream_upstream_hc_module.html"
+        lang="en"
+        rev="1">
+
+<section id="summary">
+
+<para>
+The <literal>ngx_stream_upstream_hc_module</literal> module (1.9.0)
+allows enabling periodic health checks of the servers in a
+<link doc="ngx_stream_upstream_module.xml" id="upstream">group</link>.
+The server group must reside in the
+<link doc="ngx_stream_upstream_module.xml" id="zone">shared memory</link>.
+</para>
+
+<para>
+<note>
+This module is available as part of our
+<commercial_version>commercial subscription</commercial_version>.
+</note>
+</para>
+
+</section>
+
+
+<section id="example" name="Example Configuration">
+
+<para>
+<example>
+upstream tcp {
+    zone upstream_tcp 64k;
+
+    server backend1.example.com:12345 weight=5;
+    server backend2.example.com:12345 fail_timeout=5s slow_start=30s;
+    server 192.0.2.1:12345            max_fails=3;
+
+    server backup1.example.com:12345  backup;
+    server backup2.example.com:12345  backup;
+}
+
+server {
+    listen     12346;
+    proxy_pass tcp;
+    health_check;
+}
+</example>
+</para>
+
+</section>
+
+
+<section id="directives" name="Directives">
+
+<directive name="health_check">
+<syntax>[<value>parameters</value>]</syntax>
+<default/>
+<context>server</context>
+
+<para>
+Enables periodic health checks of the servers in a
+<link doc="ngx_stream_upstream_module.xml" id="upstream">group</link>.
+</para>
+
+<para>
+The following optional parameters are supported:
+<list type="tag">
+
+<tag-name id="interval">
+<literal>interval</literal>=<value>time</value>
+</tag-name>
+<tag-desc>
+sets the interval between two consecutive health checks,
+by default, 5 seconds.
+</tag-desc>
+
+<tag-name id="health_check_jitter">
+<literal>jitter</literal>=<value>time</value>
+</tag-name>
+<tag-desc>
+sets the time within which
+each health check will be randomly delayed,
+by default, there is no delay.
+</tag-desc>
+
+<tag-name id="fails">
+<literal>fails</literal>=<value>number</value>
+</tag-name>
+<tag-desc>
+sets the number of consecutive failed health checks of a particular server
+after which this server will be considered unhealthy,
+by default, 1.
+</tag-desc>
+
+<tag-name id="passes">
+<literal>passes</literal>=<value>number</value>
+</tag-name>
+<tag-desc>
+sets the number of consecutive passed health checks of a particular server
+after which the server will be considered healthy,
+by default, 1.
+</tag-desc>
+
+<tag-name id="health_check_mandatory">
+<literal>mandatory</literal>
+</tag-name>
+<tag-desc>
+sets the initial “checking” state for a server
+until the first health check is completed (1.11.7).
+If the parameter is not specified,
+the server will be initially considered healthy.
+</tag-desc>
+
+<tag-name id="hc_match">
+<literal>match</literal>=<value>name</value>
+</tag-name>
+<tag-desc>
+specifies the <literal>match</literal> block configuring the tests that a
+successful connection should pass in order for a health check to pass.
+By default, for TCP, only the ability
+to establish a TCP connection with the server is checked.
+For <link id="health_check_udp">UDP</link>, the absence of
+ICMP “<literal>Destination Unreachable</literal>” message is expected
+in reply to the sent string “<literal>nginx health check</literal>”.
+<note>
+Prior to version 1.11.7, by default, UDP health check
+required a <link id="hc_match">match</link> block with the
+<link id="match_send">send</link> and <link id="match_expect">expect</link>
+parameters.
+</note>
+</tag-desc>
+
+<tag-name id="health_check_port">
+<literal>port</literal>=<value>number</value>
+</tag-name>
+<tag-desc>
+defines the port used when connecting to a server
+to perform a health check (1.9.7).
+By default, equals the
+<link doc="ngx_stream_upstream_module.xml" id="server"/> port.
+</tag-desc>
+
+<tag-name id="health_check_udp">
+<literal>udp</literal>
+</tag-name>
+<tag-desc>
+specifies that the <literal>UDP</literal> protocol should be used for
+health checks instead of the default <literal>TCP</literal> protocol (1.9.13).
+</tag-desc>
+
+</list>
+</para>
+
+<para>
+For example,
+<example>
+server {
+    proxy_pass backend;
+    health_check;
+}
+</example>
+will check the ability to establish a TCP connection to each server
+in the <literal>backend</literal> group every five seconds.
+When a connection to the server cannot be established,
+the health check will fail, and the server will
+be considered unhealthy.
+Client connections are not passed to unhealthy servers
+and servers in the “checking” state.
+</para>
+
+<para>
+Health checks can also be configured to test data obtained from the server.
+Tests are configured separately using the <link id="match"/> directive
+and referenced in the <literal>match</literal> parameter.
+</para>
+
+<para>
+The server group must reside in the
+<link doc="ngx_stream_upstream_module.xml" id="zone">shared memory</link>.
+</para>
+
+<para>
+If several health checks are defined for the same group of servers,
+a single failure of any check will make the corresponding server be
+considered unhealthy.
+</para>
+
+</directive>
+
+
+<directive name="health_check_timeout">
+<syntax><value>timeout</value></syntax>
+<default>5s</default>
+<context>stream</context>
+<context>server</context>
+
+<para>
+Overrides the
+<link doc="ngx_stream_proxy_module.xml" id="proxy_timeout"/>
+value for health checks.
+</para>
+
+</directive>
+
+
+<directive name="match">
+<syntax block="yes"><value>name</value> </syntax>
+<default/>
+<context>stream</context>
+
+<para>
+Defines the named test set used to verify server responses to health checks.
+</para>
+
+<para>
+The following parameters can be configured:
+<list type="tag">
+
+<tag-name id="match_send">
+<literal>send</literal> <value>string</value>;
+</tag-name>
+<tag-desc>
+sends a <value>string</value> to the server;
+</tag-desc>
+
+<tag-name id="match_expect">
+<literal>expect</literal> <value>string</value> |
+<literal>~</literal> <value>regex</value>;
+</tag-name>
+<tag-desc>
+a literal string (1.9.12) or a regular expression
+that the data obtained from the server should match.
+The regular expression is specified with the preceding
+“<literal>~*</literal>” modifier (for case-insensitive matching), or the
+“<literal>~</literal>” modifier (for case-sensitive matching).
+</tag-desc>
+
+</list>
+Both <literal>send</literal> and <literal>expect</literal> parameters
+can contain hexadecimal literals with the prefix “<literal>\x</literal>”
+followed by two hex digits, for example, “<literal>\x80</literal>” (1.9.12).
+</para>
+
+<para>
+Health check is passed if:
+<list type="bullet">
+<listitem>
+the TCP connection was successfully established;
+</listitem>
+
+<listitem>
+the <value>string</value> from the <literal>send</literal> parameter,
+if specified, was sent;
+</listitem>
+
+<listitem>
+the data obtained from the server matched the string or regular expression
+from the <literal>expect</literal> parameter, if specified;
+</listitem>
+
+<listitem>
+the time elapsed does not exceed the value specified
+in the <link id="health_check_timeout"/> directive.
+</listitem>
+
+</list>
+</para>
+
+<para>
+Example:
+<example>
+upstream backend {
+    zone     upstream_backend 10m;
+    server   127.0.0.1:12345;
+}
+
+match http {
+    send     "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n";
+    expect ~ "200 OK";
+}
+
+server {
+    listen       12346;
+    proxy_pass   backend;
+    health_check match=http;
+}
+</example>
+</para>
+
+<para>
+<note>
+Only the first
+<link doc="ngx_stream_proxy_module.xml" id="proxy_buffer_size"/>
+bytes of data obtained from the server are examined.
+</note>
+</para>
+
+</directive>
+
+</section>
+
+</module>
--- a/xml/en/docs/stream/ngx_stream_upstream_module.xml	Thu Mar 30 21:26:44 2017 +0300
+++ b/xml/en/docs/stream/ngx_stream_upstream_module.xml	Fri Mar 24 19:48:53 2017 +0300
@@ -9,7 +9,7 @@
 <module name="Module ngx_stream_upstream_module"
         link="/en/docs/stream/ngx_stream_upstream_module.html"
         lang="en"
-        rev="24">
+        rev="25">
 
 <section id="summary">
 
@@ -46,7 +46,8 @@
 </para>
 
 <para>
-Dynamically configurable group,
+Dynamically configurable group with
+periodic <link doc="ngx_stream_upstream_hc_module.xml">health checks</link> is
 available as part of our
 <commercial_version>commercial subscription</commercial_version>:
 <example>
@@ -297,7 +298,7 @@
 <tag-desc>
 sets the <value>time</value> during which the server will recover its weight
 from zero to a nominal value, when unhealthy server becomes
-<link id="health_check">healthy</link>,
+<link doc="ngx_stream_upstream_hc_module.xml" id="health_check">healthy</link>,
 or when the server becomes available after a period of time
 it was considered <link id="fail_timeout">unavailable</link>.
 Default value is zero, i.e. slow start is disabled.
@@ -491,271 +492,6 @@
 
 </directive>
 
-
-<directive name="health_check">
-<syntax>[<value>parameters</value>]</syntax>
-<default/>
-<context>server</context>
-
-<para>
-Enables periodic health checks of the servers in a
-<link id="upstream">group</link>.
-</para>
-
-<para>
-The following optional parameters are supported:
-<list type="tag">
-
-<tag-name id="interval">
-<literal>interval</literal>=<value>time</value>
-</tag-name>
-<tag-desc>
-sets the interval between two consecutive health checks,
-by default, 5 seconds.
-</tag-desc>
-
-<tag-name id="health_check_jitter">
-<literal>jitter</literal>=<value>time</value>
-</tag-name>
-<tag-desc>
-sets the time within which
-each health check will be randomly delayed,
-by default, there is no delay.
-</tag-desc>
-
-<tag-name id="fails">
-<literal>fails</literal>=<value>number</value>
-</tag-name>
-<tag-desc>
-sets the number of consecutive failed health checks of a particular server
-after which this server will be considered unhealthy,
-by default, 1.
-</tag-desc>
-
-<tag-name id="passes">
-<literal>passes</literal>=<value>number</value>
-</tag-name>
-<tag-desc>
-sets the number of consecutive passed health checks of a particular server
-after which the server will be considered healthy,
-by default, 1.
-</tag-desc>
-
-<tag-name id="health_check_mandatory">
-<literal>mandatory</literal>
-</tag-name>
-<tag-desc>
-sets the initial “checking” state for a server
-until the first health check is completed (1.11.7).
-If the parameter is not specified,
-the server will be initially considered healthy.
-</tag-desc>
-
-<tag-name id="hc_match">
-<literal>match</literal>=<value>name</value>
-</tag-name>
-<tag-desc>
-specifies the <literal>match</literal> block configuring the tests that a
-successful connection should pass in order for a health check to pass.
-By default, for TCP, only the ability
-to establish a TCP connection with the server is checked.
-For <link id="health_check_udp">UDP</link>, the absence of
-ICMP “<literal>Destination Unreachable</literal>” message is expected
-in reply to the sent string “<literal>nginx health check</literal>”.
-<note>
-Prior to version 1.11.7, by default, UDP health check
-required a <link id="hc_match">match</link> block with the
-<link id="match_send">send</link> and <link id="match_expect">expect</link>
-parameters.
-</note>
-</tag-desc>
-
-<tag-name id="health_check_port">
-<literal>port</literal>=<value>number</value>
-</tag-name>
-<tag-desc>
-defines the port used when connecting to a server
-to perform a health check (1.9.7).
-By default, equals the <link id="server"/> port.
-</tag-desc>
-
-<tag-name id="health_check_udp">
-<literal>udp</literal>
-</tag-name>
-<tag-desc>
-specifies that the <literal>UDP</literal> protocol should be used for
-health checks instead of the default <literal>TCP</literal> protocol (1.9.13).
-</tag-desc>
-
-</list>
-</para>
-
-<para>
-For example,
-<example>
-server {
-    proxy_pass backend;
-    health_check;
-}
-</example>
-will check the ability to establish a TCP connection to each server
-in the <literal>backend</literal> group every five seconds.
-When a connection to the server cannot be established,
-the health check will fail, and the server will
-be considered unhealthy.
-Client connections are not passed to unhealthy servers
-and servers in the “checking” state.
-</para>
-
-<para>
-Health checks can also be configured to test data obtained from the server.
-Tests are configured separately using the <link id="match"/> directive
-and referenced in the <literal>match</literal> parameter.
-</para>
-
-<para>
-The server group must reside in the <link id="zone">shared memory</link>.
-</para>
-
-<para>
-If several health checks are defined for the same group of servers,
-a single failure of any check will make the corresponding server be
-considered unhealthy.
-</para>
-
-<para>
-<note>
-This directive is available as part of our
-<commercial_version>commercial subscription</commercial_version>.
-</note>
-</para>
-
-</directive>
-
-
-<directive name="health_check_timeout">
-<syntax><value>timeout</value></syntax>
-<default>5s</default>
-<context>stream</context>
-<context>server</context>
-
-<para>
-Overrides the
-<link doc="ngx_stream_proxy_module.xml" id="proxy_timeout"/>
-value for health checks.
-</para>
-
-<para>
-<note>
-This directive is available as part of our
-<commercial_version>commercial subscription</commercial_version>.
-</note>
-</para>
-
-</directive>
-
-
-<directive name="match">
-<syntax block="yes"><value>name</value> </syntax>
-<default/>
-<context>stream</context>
-
-<para>
-Defines the named test set used to verify server responses to health checks.
-</para>
-
-<para>
-The following parameters can be configured:
-<list type="tag">
-
-<tag-name id="match_send">
-<literal>send</literal> <value>string</value>;
-</tag-name>
-<tag-desc>
-sends a <value>string</value> to the server;
-</tag-desc>
-
-<tag-name id="match_expect">
-<literal>expect</literal> <value>string</value> |
-<literal>~</literal> <value>regex</value>;
-</tag-name>
-<tag-desc>
-a literal string (1.9.12) or a regular expression
-that the data obtained from the server should match.
-The regular expression is specified with the preceding
-“<literal>~*</literal>” modifier (for case-insensitive matching), or the
-“<literal>~</literal>” modifier (for case-sensitive matching).
-</tag-desc>
-
-</list>
-Both <literal>send</literal> and <literal>expect</literal> parameters
-can contain hexadecimal literals with the prefix “<literal>\x</literal>”
-followed by two hex digits, for example, “<literal>\x80</literal>” (1.9.12).
-</para>
-
-<para>
-Health check is passed if:
-<list type="bullet">
-<listitem>
-the TCP connection was successfully established;
-</listitem>
-
-<listitem>
-the <value>string</value> from the <literal>send</literal> parameter,
-if specified, was sent;
-</listitem>
-
-<listitem>
-the data obtained from the server matched the string or regular expression
-from the <literal>expect</literal> parameter, if specified;
-</listitem>
-
-<listitem>
-the time elapsed does not exceed the value specified
-in the <link id="health_check_timeout"/> directive.
-</listitem>
-
-</list>
-</para>
-
-<para>
-Example:
-<example>
-upstream backend {
-    zone     upstream_backend 10m;
-    server   127.0.0.1:12345;
-}
-
-match http {
-    send     "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n";
-    expect ~ "200 OK";
-}
-
-server {
-    listen       12346;
-    proxy_pass   backend;
-    health_check match=http;
-}
-</example>
-</para>
-
-<para>
-<note>
-Only the first
-<link doc="ngx_stream_proxy_module.xml" id="proxy_buffer_size"/>
-bytes of data obtained from the server are examined.
-</note>
-</para>
-
-<para>
-<note>
-This directive is available as part of our
-<commercial_version>commercial subscription</commercial_version>.
-</note>
-</para>
-
-</directive>
-
 </section>
 
 
--- a/xml/ru/GNUmakefile	Thu Mar 30 21:26:44 2017 +0300
+++ b/xml/ru/GNUmakefile	Fri Mar 24 19:48:53 2017 +0300
@@ -102,6 +102,7 @@
 		stream/ngx_stream_ssl_module				\
 		stream/ngx_stream_ssl_preread_module			\
 		stream/ngx_stream_upstream_module			\
+		stream/ngx_stream_upstream_hc_module			\
 		stream/stream_processing				\
 		ngx_google_perftools_module				\
 
--- a/xml/ru/docs/http/ngx_http_status_module.xml	Thu Mar 30 21:26:44 2017 +0300
+++ b/xml/ru/docs/http/ngx_http_status_module.xml	Fri Mar 24 19:48:53 2017 +0300
@@ -9,7 +9,7 @@
 <module name="Модуль ngx_http_status_module"
         link="/ru/docs/http/ngx_http_status_module.html"
         lang="ru"
-        rev="15">
+        rev="16">
 
 <section id="summary">
 
@@ -952,7 +952,7 @@
 <tag-name><literal>checks</literal></tag-name>
 <tag-desc>
 Суммарное число запросов
-<link doc="../stream/ngx_stream_upstream_module.xml" id="health_check">проверки
+<link doc="../stream/ngx_stream_upstream_hc_module.xml" id="health_check">проверки
 работоспособности</link>.
 </tag-desc>
 
@@ -971,7 +971,7 @@
 <tag-desc>
 Логическое значение, означающее, была ли последняя проверка
 работоспособности удачной и удовлетворял ли ответ заданным
-<link doc="../stream/ngx_stream_upstream_module.xml" id="match">тестам</link>.
+<link doc="../stream/ngx_stream_upstream_hc_module.xml" id="match">тестам</link>.
 </tag-desc>
 
 </list>
--- a/xml/ru/docs/index.xml	Thu Mar 30 21:26:44 2017 +0300
+++ b/xml/ru/docs/index.xml	Fri Mar 24 19:48:53 2017 +0300
@@ -8,7 +8,7 @@
 <article name="nginx: документация"
          link="/ru/docs/"
          lang="ru"
-         rev="38"
+         rev="39"
          toc="no">
 
 
@@ -591,6 +591,11 @@
 ngx_stream_upstream_module</link>
 </listitem>
 
+<listitem>
+<link doc="stream/ngx_stream_upstream_hc_module.xml">
+ngx_stream_upstream_hc_module</link>
+</listitem>
+
 </list>
 </para>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/ru/docs/stream/ngx_stream_upstream_hc_module.xml	Fri Mar 24 19:48:53 2017 +0300
@@ -0,0 +1,312 @@
+<?xml version="1.0"?>
+
+<!--
+  Copyright (C) Nginx, Inc.
+  -->
+
+<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
+
+<module name="Модуль ngx_stream_upstream_hc_module"
+        link="/ru/docs/stream/ngx_stream_upstream_hc_module.html"
+        lang="ru"
+        rev="1">
+
+<section id="summary">
+
+<para>
+Модуль <literal>ngx_stream_upstream_hc_module</literal> (1.9.0)
+позволяет активировать периодические проверки работоспособности серверов в
+<link doc="ngx_stream_upstream_module.xml" id="upstream">группе</link>.
+Группа должна находиться в
+<link doc="ngx_stream_upstream_module.xml" id="zone">зоне разделяемой памяти</link>.
+</para>
+
+<para>
+<note>
+Модуль доступен как часть
+<commercial_version>коммерческой подписки</commercial_version>.
+</note>
+</para>
+
+</section>
+
+
+<section id="example" name="Пример конфигурации">
+
+<para>
+<example>
+upstream tcp {
+    zone upstream_tcp 64k;
+
+    server backend1.example.com:12345 weight=5;
+    server backend2.example.com:12345 fail_timeout=5s slow_start=30s;
+    server 192.0.2.1:12345            max_fails=3;
+
+    server backup1.example.com:12345  backup;
+    server backup2.example.com:12345  backup;
+}
+
+server {
+    listen     12346;
+    proxy_pass tcp;
+    health_check;
+}
+</example>
+</para>
+
+</section>
+
+
+<section id="directives" name="Директивы">
+
+<directive name="health_check">
+<syntax>[<value>параметры</value>]</syntax>
+<default/>
+<context>server</context>
+
+<para>
+Активирует периодические проверки работоспособности серверов в
+<link doc="ngx_stream_upstream_hc_module.xml" id="upstream">группе</link>.
+</para>
+
+<para>
+Могут быть заданы следующие необязательные параметры:
+<list type="tag">
+
+<tag-name id="interval">
+<literal>interval</literal>=<value>время</value>
+</tag-name>
+<tag-desc>
+задаёт интервал между двумя последовательными проверками,
+по умолчанию 5 секунд.
+</tag-desc>
+
+<tag-name id="health_check_jitter">
+<literal>jitter</literal>=<value>время</value>
+</tag-name>
+<tag-desc>
+задаёт время, в пределах которого
+случайным образом задерживается каждая проверка,
+по умолчанию задержки нет.
+</tag-desc>
+
+<tag-name id="fails">
+<literal>fails</literal>=<value>число</value>
+</tag-name>
+<tag-desc>
+задаёт число последовательных неуспешных проверок для определённого сервера,
+после которых сервер будет считаться неработоспособным,
+по умолчанию 1.
+</tag-desc>
+
+<tag-name id="passes">
+<literal>passes</literal>=<value>число</value>
+</tag-name>
+<tag-desc>
+задаёт число последовательных успешных проверок для определённого сервера,
+после которых сервер будет считаться работоспособным,
+по умолчанию 1.
+</tag-desc>
+
+<tag-name id="health_check_mandatory">
+<literal>mandatory</literal>
+</tag-name>
+<tag-desc>
+устанавливает исходное состояние “checking” для сервера
+до завершения первой проверки работоспособности (1.11.7).
+Если параметр не указан,
+то исходно сервер будет считаться работоспособным.
+</tag-desc>
+
+<tag-name id="hc_match">
+<literal>match</literal>=<value>имя</value>
+</tag-name>
+<tag-desc>
+указывает на блок <literal>match</literal> с условиями, которым должно
+удовлетворять соединение, чтобы результат проверки считался успешным.
+По умолчанию для TCP проверяется
+лишь возможность установки TCP-соединения с сервером,
+для <link id="health_check_udp">UDP</link> проверяется отсутствие
+сообщения ICMP “<literal>Destination Unreachable</literal>”
+в ответ на отправленную строку “<literal>nginx health check</literal>”.
+<note>
+До версии 1.11.7 по умолчанию для UDP
+требовалось наличие блока <link id="hc_match">match</link> с параметрами
+<link id="match_send">send</link> и <link id="match_expect">expect</link>.
+</note>
+</tag-desc>
+
+<tag-name id="health_check_port">
+<literal>port</literal>=<value>число</value>
+</tag-name>
+<tag-desc>
+задаёт порт, используемый при подключении к серверу
+для проверки его работоспособности (1.9.7).
+По умолчанию совпадает с портом
+<link doc="ngx_stream_upstream_module.xml" id="server">сервера</link>.
+</tag-desc>
+
+<tag-name id="health_check_udp">
+<literal>udp</literal>
+</tag-name>
+<tag-desc>
+указывает, что для проверки работоспособности будет использоваться протокол
+<literal>UDP</literal>
+вместо протокола <literal>TCP</literal>, используемого по умолчанию (1.9.13).
+</tag-desc>
+
+</list>
+</para>
+
+<para>
+В примере
+<example>
+server {
+    proxy_pass backend;
+    health_check;
+}
+</example>
+для каждого сервера группы <literal>backend</literal>
+с интервалом в 5 секунд проверяется возможность установки TCP-соединения.
+Если соединение с сервером не может быть установлено,
+проверка считается неуспешной и сервер
+признаётся неработоспособным.
+На неработоспособные серверы и серверы в состоянии “checking”
+клиентские соединения передаваться не будут.
+</para>
+
+<para>
+Проверки работоспособности могут тестировать данные, полученные от сервера.
+Тесты настраиваются отдельно при помощи директивы <link id="match"/>
+и указываются в параметре <literal>match</literal>.
+</para>
+
+<para>
+Группа должна находиться в
+<link doc="ngx_stream_upstream_module.xml" id="zone">зоне разделяемой памяти</link>.
+</para>
+
+<para>
+Если для группы задано несколько проверок,
+то при любой неуспешной проверке соответствующий сервер будет
+считаться неработоспособным.
+</para>
+
+</directive>
+
+
+<directive name="health_check_timeout">
+<syntax><value>время</value></syntax>
+<default>5s</default>
+<context>stream</context>
+<context>server</context>
+
+<para>
+Переопределяет значение
+<link doc="ngx_stream_proxy_module.xml" id="proxy_timeout"/>
+для проверок работоспособности.
+</para>
+
+</directive>
+
+
+<directive name="match">
+<syntax block="yes"><value>имя</value> </syntax>
+<default/>
+<context>stream</context>
+
+<para>
+Задаёт именованный набор тестов для для анализа ответов сервера
+на запросы проверки работоспособности.
+</para>
+
+<para>
+Могут быть заданы следующие параметры:
+<list type="tag">
+
+<tag-name id="match_send">
+<literal>send</literal> <value>строка</value>;
+</tag-name>
+<tag-desc>
+отправляет <value>строку</value> на сервер;
+</tag-desc>
+
+<tag-name id="match_expect">
+<literal>expect</literal> <value>стока</value> |
+<literal>~</literal> <value>regex</value>;
+</tag-name>
+<tag-desc>
+текстовая строка (1.9.12) или регулярное выражение,
+которым должны соответствовать данные, полученные с сервера.
+Регулярное выражение задаётся либо с модификатором
+“<literal>~*</literal>” (для поиска совпадения без учёта регистра символов),
+либо с модификатором “<literal>~</literal>” (с учётом регистра).
+</tag-desc>
+
+</list>
+Параметры <literal>send</literal> и <literal>expect</literal>
+могут содержать строки в шестнадцатеричном виде
+с префиксом “<literal>\x</literal>”
+и последующими двумя шестнадцатеричными цифрами,
+например “<literal>\x80</literal>” (1.9.12).
+</para>
+
+<para>
+Проверка работоспособности считается успешной, если
+<list type="bullet">
+<listitem>
+TCP-соединение успешно установлено;
+</listitem>
+
+<listitem>
+<value>строка</value> из параметра <literal>send</literal>
+была отправлена (если была задана);
+</listitem>
+
+<listitem>
+данные, полученные от сервера, совпали со строкой или регулярным выражением
+из параметра <literal>expect</literal> (если был задан);
+</listitem>
+
+<listitem>
+истёкшее время не превышает значение, указанное
+в директиве <link id="health_check_timeout"/>.
+</listitem>
+
+</list>
+</para>
+
+<para>
+Пример:
+<example>
+upstream backend {
+    zone     upstream_backend 10m;
+    server   127.0.0.1:12345;
+}
+
+match http {
+    send     "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n";
+    expect ~ "200 OK";
+}
+
+server {
+    listen       12346;
+    proxy_pass   backend;
+    health_check match=http;
+}
+</example>
+</para>
+
+<para>
+<note>
+Проверяются лишь первые байты данных
+<link doc="ngx_stream_proxy_module.xml" id="proxy_buffer_size"/>,
+полученные от сервера.
+</note>
+</para>
+
+</directive>
+
+</section>
+
+</module>
--- a/xml/ru/docs/stream/ngx_stream_upstream_module.xml	Thu Mar 30 21:26:44 2017 +0300
+++ b/xml/ru/docs/stream/ngx_stream_upstream_module.xml	Fri Mar 24 19:48:53 2017 +0300
@@ -9,7 +9,7 @@
 <module name="Модуль ngx_stream_upstream_module"
         link="/ru/docs/stream/ngx_stream_upstream_module.html"
         lang="ru"
-        rev="24">
+        rev="25">
 
 <section id="summary">
 
@@ -46,7 +46,9 @@
 </para>
 
 <para>
-Динамически настраиваемая группа,
+Динамически настраиваемая группа
+с периодическими
+<link doc="ngx_stream_upstream_hc_module.xml">проверками работоспособности</link>
 доступна как часть
 <commercial_version>коммерческой подписки</commercial_version>:
 <example>
@@ -298,7 +300,7 @@
 задаёт <value>время</value>, в течение которого вес сервера
 восстановится от нуля до своего номинального значения в ситуации, когда
 неработоспособный (unhealthy) сервер вновь становится работоспособным
-(<link id="health_check">healthy</link>)
+(<link doc="ngx_http_upstream_hc_module.xml" id="health_check">healthy</link>)
 или когда сервер становится доступным по прошествии времени,
 в течение которого он считался <link id="fail_timeout">недоступным</link>.
 Значение по умолчанию равно нулю и означает, что медленный старт выключен.
@@ -491,274 +493,6 @@
 
 </directive>
 
-
-<directive name="health_check">
-<syntax>[<value>параметры</value>]</syntax>
-<default/>
-<context>server</context>
-
-<para>
-Активирует периодические проверки работоспособности серверов в
-<link id="upstream">группе</link>.
-</para>
-
-<para>
-Могут быть заданы следующие необязательные параметры:
-<list type="tag">
-
-<tag-name id="interval">
-<literal>interval</literal>=<value>время</value>
-</tag-name>
-<tag-desc>
-задаёт интервал между двумя последовательными проверками,
-по умолчанию 5 секунд.
-</tag-desc>
-
-<tag-name id="health_check_jitter">
-<literal>jitter</literal>=<value>время</value>
-</tag-name>
-<tag-desc>
-задаёт время, в пределах которого
-случайным образом задерживается каждая проверка,
-по умолчанию задержки нет.
-</tag-desc>
-
-<tag-name id="fails">
-<literal>fails</literal>=<value>число</value>
-</tag-name>
-<tag-desc>
-задаёт число последовательных неуспешных проверок для определённого сервера,
-после которых сервер будет считаться неработоспособным,
-по умолчанию 1.
-</tag-desc>
-
-<tag-name id="passes">
-<literal>passes</literal>=<value>число</value>
-</tag-name>
-<tag-desc>
-задаёт число последовательных успешных проверок для определённого сервера,
-после которых сервер будет считаться работоспособным,
-по умолчанию 1.
-</tag-desc>
-
-<tag-name id="health_check_mandatory">
-<literal>mandatory</literal>
-</tag-name>
-<tag-desc>
-устанавливает исходное состояние “checking” для сервера
-до завершения первой проверки работоспособности (1.11.7).
-Если параметр не указан,
-то исходно сервер будет считаться работоспособным.
-</tag-desc>
-
-<tag-name id="hc_match">
-<literal>match</literal>=<value>имя</value>
-</tag-name>
-<tag-desc>
-указывает на блок <literal>match</literal> с условиями, которым должно
-удовлетворять соединение, чтобы результат проверки считался успешным.
-По умолчанию для TCP проверяется
-лишь возможность установки TCP-соединения с сервером,
-для <link id="health_check_udp">UDP</link> проверяется отсутствие
-сообщения ICMP “<literal>Destination Unreachable</literal>”
-в ответ на отправленную строку “<literal>nginx health check</literal>”.
-<note>
-До версии 1.11.7 по умолчанию для UDP
-требовалось наличие блока <link id="hc_match">match</link> с параметрами
-<link id="match_send">send</link> и <link id="match_expect">expect</link>.
-</note>
-</tag-desc>
-
-<tag-name id="health_check_port">
-<literal>port</literal>=<value>число</value>
-</tag-name>
-<tag-desc>
-задаёт порт, используемый при подключении к серверу
-для проверки его работоспособности (1.9.7).
-По умолчанию совпадает с портом <link id="server">сервера</link>.
-</tag-desc>
-
-<tag-name id="health_check_udp">
-<literal>udp</literal>
-</tag-name>
-<tag-desc>
-указывает, что для проверки работоспособности будет использоваться протокол
-<literal>UDP</literal>
-вместо протокола <literal>TCP</literal>, используемого по умолчанию (1.9.13).
-</tag-desc>
-
-</list>
-</para>
-
-<para>
-В примере
-<example>
-server {
-    proxy_pass backend;
-    health_check;
-}
-</example>
-для каждого сервера группы <literal>backend</literal>
-с интервалом в 5 секунд проверяется возможность установки TCP-соединения.
-Если соединение с сервером не может быть установлено,
-проверка считается неуспешной и сервер
-признаётся неработоспособным.
-На неработоспособные серверы и серверы в состоянии “checking”
-клиентские соединения передаваться не будут.
-</para>
-
-<para>
-Проверки работоспособности могут тестировать данные, полученные от сервера.
-Тесты настраиваются отдельно при помощи директивы <link id="match"/>
-и указываются в параметре <literal>match</literal>.
-</para>
-
-<para>
-Группа должна находиться в <link id="zone">зоне разделяемой памяти</link>.
-</para>
-
-<para>
-Если для группы задано несколько проверок,
-то при любой неуспешной проверке соответствующий сервер будет
-считаться неработоспособным.
-</para>
-
-<para>
-<note>
-Эта директива доступна как часть
-<commercial_version>коммерческой подписки</commercial_version>.
-</note>
-</para>
-
-</directive>
-
-
-<directive name="health_check_timeout">
-<syntax><value>время</value></syntax>
-<default>5s</default>
-<context>stream</context>
-<context>server</context>
-
-<para>
-Переопределяет значение
-<link doc="ngx_stream_proxy_module.xml" id="proxy_timeout"/>
-для проверок работоспособности.
-</para>
-
-<para>
-<note>
-Эта директива доступна как часть
-<commercial_version>коммерческой подписки</commercial_version>.
-</note>
-</para>
-
-</directive>
-
-
-<directive name="match">
-<syntax block="yes"><value>имя</value> </syntax>
-<default/>
-<context>stream</context>
-
-<para>
-Задаёт именованный набор тестов для для анализа ответов сервера
-на запросы проверки работоспособности.
-</para>
-
-<para>
-Могут быть заданы следующие параметры:
-<list type="tag">
-
-<tag-name id="match_send">
-<literal>send</literal> <value>строка</value>;
-</tag-name>
-<tag-desc>
-отправляет <value>строку</value> на сервер;
-</tag-desc>
-
-<tag-name id="match_expect">
-<literal>expect</literal> <value>стока</value> |
-<literal>~</literal> <value>regex</value>;
-</tag-name>
-<tag-desc>
-текстовая строка (1.9.12) или регулярное выражение,
-которым должны соответствовать данные, полученные с сервера.
-Регулярное выражение задаётся либо с модификатором
-“<literal>~*</literal>” (для поиска совпадения без учёта регистра символов),
-либо с модификатором “<literal>~</literal>” (с учётом регистра).
-</tag-desc>
-
-</list>
-Параметры <literal>send</literal> и <literal>expect</literal>
-могут содержать строки в шестнадцатеричном виде
-с префиксом “<literal>\x</literal>”
-и последующими двумя шестнадцатеричными цифрами,
-например “<literal>\x80</literal>” (1.9.12).
-</para>
-
-<para>
-Проверка работоспособности считается успешной, если
-<list type="bullet">
-<listitem>
-TCP-соединение успешно установлено;
-</listitem>
-
-<listitem>
-<value>строка</value> из параметра <literal>send</literal>
-была отправлена (если была задана);
-</listitem>
-
-<listitem>
-данные, полученные от сервера, совпали со строкой или регулярным выражением
-из параметра <literal>expect</literal> (если был задан);
-</listitem>
-
-<listitem>
-истёкшее время не превышает значение, указанное
-в директиве <link id="health_check_timeout"/>.
-</listitem>
-
-</list>
-</para>
-
-<para>
-Пример:
-<example>
-upstream backend {
-    zone     upstream_backend 10m;
-    server   127.0.0.1:12345;
-}
-
-match http {
-    send     "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n";
-    expect ~ "200 OK";
-}
-
-server {
-    listen       12346;
-    proxy_pass   backend;
-    health_check match=http;
-}
-</example>
-</para>
-
-<para>
-<note>
-Проверяются лишь первые байты данных
-<link doc="ngx_stream_proxy_module.xml" id="proxy_buffer_size"/>,
-полученные от сервера.
-</note>
-</para>
-
-<para>
-<note>
-Эта директива доступна как часть
-<commercial_version>коммерческой подписки</commercial_version>.
-</note>
-</para>
-
-</directive>
-
 </section>