diff xml/ru/docs/http/ngx_http_upstream_hc_module.xml @ 1945:88477c5d2751

Moved "health_check" and "match" to ngx_http_upstream_hc_module.
author Yaroslav Zhuravlev <yar@nginx.com>
date Thu, 30 Mar 2017 21:26:44 +0300
parents xml/ru/docs/http/ngx_http_upstream_module.xml@a58b35cc0823
children 37df1535ea91
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/ru/docs/http/ngx_http_upstream_hc_module.xml	Thu Mar 30 21:26:44 2017 +0300
@@ -0,0 +1,350 @@
+<?xml version="1.0"?>
+
+<!--
+  Copyright (C) Nginx, Inc.
+  -->
+
+<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
+
+<module name="Модуль ngx_http_upstream_hc_module"
+        link="/ru/docs/http/ngx_http_upstream_hc_module.html"
+        lang="ru"
+        rev="1">
+
+<section id="summary">
+
+<para>
+Модуль <literal>ngx_http_upstream_hc_module</literal>
+позволяет активировать периодические проверки работоспособности серверов в
+<link doc="ngx_http_upstream_module.xml" id="upstream">группе</link>,
+указанной в содержащем location.
+</para>
+
+<para>
+<note>
+Модуль доступен как часть
+<commercial_version>коммерческой подписки</commercial_version>.
+</note>
+</para>
+
+</section>
+
+
+<section id="example" name="Пример конфигурации">
+
+<para>
+<example>
+upstream dynamic {
+    zone upstream_dynamic 64k;
+
+    server backend1.example.com      weight=5;
+    server backend2.example.com:8080 fail_timeout=5s slow_start=30s;
+    server 192.0.2.1                 max_fails=3;
+
+    server backup1.example.com:8080  backup;
+    server backup2.example.com:8080  backup;
+}
+
+server {
+    location / {
+        proxy_pass http://dynamic;
+        health_check;
+    }
+}
+</example>
+</para>
+
+</section>
+
+
+<section id="directives" name="Директивы">
+
+<directive name="health_check">
+<syntax>[<value>параметры</value>]</syntax>
+<default/>
+<context>location</context>
+
+<para>
+Активирует периодические проверки работоспособности серверов в
+<link doc="ngx_http_upstream_module.xml" id="upstream">группе</link>,
+указанной в содержащем location.
+</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="uri">
+<literal>uri</literal>=<value>uri</value>
+</tag-name>
+<tag-desc>
+задаёт URI, используемый в запросах, проверяющих работоспособность,
+по умолчанию “<literal>/</literal>”.
+</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> с условиями, которым должен
+удовлетворять ответ, чтобы результат проверки считался успешным.
+По умолчанию код ответа должен быть 2xx или 3xx.
+</tag-desc>
+
+<tag-name id="health_check_port">
+<literal>port</literal>=<value>число</value>
+</tag-name>
+<tag-desc>
+задаёт порт, используемый при подключении к серверу
+для проверки его работоспособности (1.9.7).
+По умолчанию совпадает с портом
+<link doc="ngx_http_upstream_module.xml" id="server">сервера</link>.
+</tag-desc>
+
+</list>
+</para>
+
+<para>
+В примере
+<example>
+location / {
+    proxy_pass http://backend;
+    health_check;
+}
+</example>
+каждому серверу группы <literal>backend</literal>
+с интервалом в 5 секунд посылаются запросы “<literal>/</literal>”.
+Если происходит ошибка или таймаут при работе с сервером, или
+код ответа проксируемого сервера не равен
+2xx или 3xx, проверка считается неуспешной и сервер
+признаётся неработоспособным.
+На неработоспособные серверы и серверы в состоянии “checking”
+клиентские запросы передаваться не будут.
+</para>
+
+<para>
+Проверки работоспособности могут тестировать код ответа,
+наличие или отсутствие определённых полей заголовка и их значений,
+а также содержимое тела ответа.
+Тесты настраиваются отдельно при помощи директивы <link id="match"/>
+и указываются в параметре <literal>match</literal>.
+Например:
+<example>
+http {
+    server {
+    ...
+        location / {
+            proxy_pass http://backend;
+            health_check match=welcome;
+        }
+    }
+
+    match welcome {
+        status 200;
+        header Content-Type = text/html;
+        body ~ "Welcome to nginx!";
+    }
+}
+</example>
+В такой конфигурации успешный ответ на проверочный запрос
+должен иметь код 200, тип содержимого “<literal>text/html</literal>”
+и “<literal>Welcome to nginx!</literal>” в теле ответа.
+</para>
+
+<para>
+Группа должна находиться в
+<link doc="ngx_http_upstream_module.xml" id="zone">зоне разделяемой памяти</link>.
+</para>
+
+<para>
+Если для группы задано несколько проверок,
+то при любой неуспешной проверке соответствующий сервер будет
+считаться неработоспособным.
+</para>
+
+<para>
+<note>
+Обратите внимание, что при использовании проверок
+большинство переменных имеют пустые значения.
+</note>
+</para>
+
+</directive>
+
+
+<directive name="match">
+<syntax block="yes"><value>имя</value></syntax>
+<default/>
+<context>http</context>
+
+<para>
+Задаёт именованный набор тестов для анализа ответов
+на запросы проверки работоспособности.
+</para>
+
+<para>
+В ответе могут быть протестированы следующие объекты:
+<list type="tag">
+
+<tag-name><literal>status 200;</literal></tag-name>
+<tag-desc>код ответа равен 200</tag-desc>
+
+<tag-name><literal>status ! 500;</literal></tag-name>
+<tag-desc>код ответа не равен 500</tag-desc>
+
+<tag-name><literal>status 200 204;</literal></tag-name>
+<tag-desc>код ответа равен 200 или 204</tag-desc>
+
+<tag-name><literal>status ! 301 302;</literal></tag-name>
+<tag-desc>код ответа не равен ни 301, ни 302</tag-desc>
+
+<tag-name><literal>status 200-399;</literal></tag-name>
+<tag-desc>код ответа находится в диапазоне от 200 до 399</tag-desc>
+
+<tag-name><literal>status ! 400-599;</literal></tag-name>
+<tag-desc>код ответа находится вне диапазона от 400 до 599</tag-desc>
+
+<tag-name><literal>status 301-303 307;</literal></tag-name>
+<tag-desc>код ответа равен 301, 302, 303 или 307</tag-desc>
+
+</list>
+
+<list type="tag">
+
+<tag-name><literal>header Content-Type = text/html;</literal></tag-name>
+<tag-desc>
+заголовок содержит <header>Content-Type</header>
+со значением <literal>text/html</literal>
+</tag-desc>
+
+<tag-name><literal>header Content-Type != text/html;</literal></tag-name>
+<tag-desc>
+заголовок содержит <header>Content-Type</header>
+со значением, отличным от <literal>text/html</literal>
+</tag-desc>
+
+<tag-name><literal>header Connection ~ close;</literal></tag-name>
+<tag-desc>
+заголовок содержит <header>Connection</header>
+со значением, совпадающим с регулярным выражением <literal>close</literal>
+</tag-desc>
+
+<tag-name><literal>header Connection !~ close;</literal></tag-name>
+<tag-desc>
+заголовок содержит <header>Connection</header>
+со значением, не совпадающим с регулярным выражением <literal>close</literal>
+</tag-desc>
+
+<tag-name><literal>header Host;</literal></tag-name>
+<tag-desc>заголовок содержит <header>Host</header></tag-desc>
+
+<tag-name><literal>header ! X-Accel-Redirect;</literal></tag-name>
+<tag-desc>заголовок не содержит <header>X-Accel-Redirect</header></tag-desc>
+
+</list>
+
+<list type="tag">
+
+<tag-name><literal>body ~ "Welcome to nginx!";</literal></tag-name>
+<tag-desc>
+тело ответа совпадает с регулярным выражением
+“<literal>Welcome to nginx!</literal>”
+</tag-desc>
+
+<tag-name><literal>body !~ "Welcome to nginx!";</literal></tag-name>
+<tag-desc>
+тело ответа не совпадает с регулярным выражением
+“<literal>Welcome to nginx!</literal>”
+</tag-desc>
+
+</list>
+</para>
+
+<para>
+Если задано несколько тестов,
+то ответ должен удовлетворять всем тестам.
+<note>
+Проверяются только первые 256 Кбайт тела ответа.
+</note>
+</para>
+
+<para>
+Примеры:
+<example>
+# код ответа 200, тип содержимого "text/html"
+# и тело ответа содержит "Welcome to nginx!"
+match welcome {
+    status 200;
+    header Content-Type = text/html;
+    body ~ "Welcome to nginx!";
+}
+</example>
+
+<example>
+# код ответа не равен 301, 302, 303 и 307 и заголовок не содержит "Refresh:"
+match not_redirect {
+    status ! 301-303 307;
+    header ! Refresh;
+}
+</example>
+
+<example>
+# код ответа успешный и сервер не в сервисном режиме
+match server_ok {
+    status 200-399;
+    body !~ "maintenance mode";
+}
+</example>
+
+</para>
+
+</directive>
+
+</section>
+
+</module>