Mercurial > hg > nginx-site
diff xml/ru/docs/stream/ngx_stream_upstream_hc_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 | xml/ru/docs/stream/ngx_stream_upstream_module.xml@a58b35cc0823 |
children | 25962922969a |
line wrap: on
line diff
--- /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>