Mercurial > hg > nginx-site
comparison 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 |
comparison
equal
deleted
inserted
replaced
1946:37df1535ea91 | 1947:6b6d0e844bf7 |
---|---|
1 <?xml version="1.0"?> | |
2 | |
3 <!-- | |
4 Copyright (C) Nginx, Inc. | |
5 --> | |
6 | |
7 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> | |
8 | |
9 <module name="Модуль ngx_stream_upstream_hc_module" | |
10 link="/ru/docs/stream/ngx_stream_upstream_hc_module.html" | |
11 lang="ru" | |
12 rev="1"> | |
13 | |
14 <section id="summary"> | |
15 | |
16 <para> | |
17 Модуль <literal>ngx_stream_upstream_hc_module</literal> (1.9.0) | |
18 позволяет активировать периодические проверки работоспособности серверов в | |
19 <link doc="ngx_stream_upstream_module.xml" id="upstream">группе</link>. | |
20 Группа должна находиться в | |
21 <link doc="ngx_stream_upstream_module.xml" id="zone">зоне разделяемой памяти</link>. | |
22 </para> | |
23 | |
24 <para> | |
25 <note> | |
26 Модуль доступен как часть | |
27 <commercial_version>коммерческой подписки</commercial_version>. | |
28 </note> | |
29 </para> | |
30 | |
31 </section> | |
32 | |
33 | |
34 <section id="example" name="Пример конфигурации"> | |
35 | |
36 <para> | |
37 <example> | |
38 upstream tcp { | |
39 zone upstream_tcp 64k; | |
40 | |
41 server backend1.example.com:12345 weight=5; | |
42 server backend2.example.com:12345 fail_timeout=5s slow_start=30s; | |
43 server 192.0.2.1:12345 max_fails=3; | |
44 | |
45 server backup1.example.com:12345 backup; | |
46 server backup2.example.com:12345 backup; | |
47 } | |
48 | |
49 server { | |
50 listen 12346; | |
51 proxy_pass tcp; | |
52 health_check; | |
53 } | |
54 </example> | |
55 </para> | |
56 | |
57 </section> | |
58 | |
59 | |
60 <section id="directives" name="Директивы"> | |
61 | |
62 <directive name="health_check"> | |
63 <syntax>[<value>параметры</value>]</syntax> | |
64 <default/> | |
65 <context>server</context> | |
66 | |
67 <para> | |
68 Активирует периодические проверки работоспособности серверов в | |
69 <link doc="ngx_stream_upstream_hc_module.xml" id="upstream">группе</link>. | |
70 </para> | |
71 | |
72 <para> | |
73 Могут быть заданы следующие необязательные параметры: | |
74 <list type="tag"> | |
75 | |
76 <tag-name id="interval"> | |
77 <literal>interval</literal>=<value>время</value> | |
78 </tag-name> | |
79 <tag-desc> | |
80 задаёт интервал между двумя последовательными проверками, | |
81 по умолчанию 5 секунд. | |
82 </tag-desc> | |
83 | |
84 <tag-name id="health_check_jitter"> | |
85 <literal>jitter</literal>=<value>время</value> | |
86 </tag-name> | |
87 <tag-desc> | |
88 задаёт время, в пределах которого | |
89 случайным образом задерживается каждая проверка, | |
90 по умолчанию задержки нет. | |
91 </tag-desc> | |
92 | |
93 <tag-name id="fails"> | |
94 <literal>fails</literal>=<value>число</value> | |
95 </tag-name> | |
96 <tag-desc> | |
97 задаёт число последовательных неуспешных проверок для определённого сервера, | |
98 после которых сервер будет считаться неработоспособным, | |
99 по умолчанию 1. | |
100 </tag-desc> | |
101 | |
102 <tag-name id="passes"> | |
103 <literal>passes</literal>=<value>число</value> | |
104 </tag-name> | |
105 <tag-desc> | |
106 задаёт число последовательных успешных проверок для определённого сервера, | |
107 после которых сервер будет считаться работоспособным, | |
108 по умолчанию 1. | |
109 </tag-desc> | |
110 | |
111 <tag-name id="health_check_mandatory"> | |
112 <literal>mandatory</literal> | |
113 </tag-name> | |
114 <tag-desc> | |
115 устанавливает исходное состояние “checking” для сервера | |
116 до завершения первой проверки работоспособности (1.11.7). | |
117 Если параметр не указан, | |
118 то исходно сервер будет считаться работоспособным. | |
119 </tag-desc> | |
120 | |
121 <tag-name id="hc_match"> | |
122 <literal>match</literal>=<value>имя</value> | |
123 </tag-name> | |
124 <tag-desc> | |
125 указывает на блок <literal>match</literal> с условиями, которым должно | |
126 удовлетворять соединение, чтобы результат проверки считался успешным. | |
127 По умолчанию для TCP проверяется | |
128 лишь возможность установки TCP-соединения с сервером, | |
129 для <link id="health_check_udp">UDP</link> проверяется отсутствие | |
130 сообщения ICMP “<literal>Destination Unreachable</literal>” | |
131 в ответ на отправленную строку “<literal>nginx health check</literal>”. | |
132 <note> | |
133 До версии 1.11.7 по умолчанию для UDP | |
134 требовалось наличие блока <link id="hc_match">match</link> с параметрами | |
135 <link id="match_send">send</link> и <link id="match_expect">expect</link>. | |
136 </note> | |
137 </tag-desc> | |
138 | |
139 <tag-name id="health_check_port"> | |
140 <literal>port</literal>=<value>число</value> | |
141 </tag-name> | |
142 <tag-desc> | |
143 задаёт порт, используемый при подключении к серверу | |
144 для проверки его работоспособности (1.9.7). | |
145 По умолчанию совпадает с портом | |
146 <link doc="ngx_stream_upstream_module.xml" id="server">сервера</link>. | |
147 </tag-desc> | |
148 | |
149 <tag-name id="health_check_udp"> | |
150 <literal>udp</literal> | |
151 </tag-name> | |
152 <tag-desc> | |
153 указывает, что для проверки работоспособности будет использоваться протокол | |
154 <literal>UDP</literal> | |
155 вместо протокола <literal>TCP</literal>, используемого по умолчанию (1.9.13). | |
156 </tag-desc> | |
157 | |
158 </list> | |
159 </para> | |
160 | |
161 <para> | |
162 В примере | |
163 <example> | |
164 server { | |
165 proxy_pass backend; | |
166 health_check; | |
167 } | |
168 </example> | |
169 для каждого сервера группы <literal>backend</literal> | |
170 с интервалом в 5 секунд проверяется возможность установки TCP-соединения. | |
171 Если соединение с сервером не может быть установлено, | |
172 проверка считается неуспешной и сервер | |
173 признаётся неработоспособным. | |
174 На неработоспособные серверы и серверы в состоянии “checking” | |
175 клиентские соединения передаваться не будут. | |
176 </para> | |
177 | |
178 <para> | |
179 Проверки работоспособности могут тестировать данные, полученные от сервера. | |
180 Тесты настраиваются отдельно при помощи директивы <link id="match"/> | |
181 и указываются в параметре <literal>match</literal>. | |
182 </para> | |
183 | |
184 <para> | |
185 Группа должна находиться в | |
186 <link doc="ngx_stream_upstream_module.xml" id="zone">зоне разделяемой памяти</link>. | |
187 </para> | |
188 | |
189 <para> | |
190 Если для группы задано несколько проверок, | |
191 то при любой неуспешной проверке соответствующий сервер будет | |
192 считаться неработоспособным. | |
193 </para> | |
194 | |
195 </directive> | |
196 | |
197 | |
198 <directive name="health_check_timeout"> | |
199 <syntax><value>время</value></syntax> | |
200 <default>5s</default> | |
201 <context>stream</context> | |
202 <context>server</context> | |
203 | |
204 <para> | |
205 Переопределяет значение | |
206 <link doc="ngx_stream_proxy_module.xml" id="proxy_timeout"/> | |
207 для проверок работоспособности. | |
208 </para> | |
209 | |
210 </directive> | |
211 | |
212 | |
213 <directive name="match"> | |
214 <syntax block="yes"><value>имя</value> </syntax> | |
215 <default/> | |
216 <context>stream</context> | |
217 | |
218 <para> | |
219 Задаёт именованный набор тестов для для анализа ответов сервера | |
220 на запросы проверки работоспособности. | |
221 </para> | |
222 | |
223 <para> | |
224 Могут быть заданы следующие параметры: | |
225 <list type="tag"> | |
226 | |
227 <tag-name id="match_send"> | |
228 <literal>send</literal> <value>строка</value>; | |
229 </tag-name> | |
230 <tag-desc> | |
231 отправляет <value>строку</value> на сервер; | |
232 </tag-desc> | |
233 | |
234 <tag-name id="match_expect"> | |
235 <literal>expect</literal> <value>стока</value> | | |
236 <literal>~</literal> <value>regex</value>; | |
237 </tag-name> | |
238 <tag-desc> | |
239 текстовая строка (1.9.12) или регулярное выражение, | |
240 которым должны соответствовать данные, полученные с сервера. | |
241 Регулярное выражение задаётся либо с модификатором | |
242 “<literal>~*</literal>” (для поиска совпадения без учёта регистра символов), | |
243 либо с модификатором “<literal>~</literal>” (с учётом регистра). | |
244 </tag-desc> | |
245 | |
246 </list> | |
247 Параметры <literal>send</literal> и <literal>expect</literal> | |
248 могут содержать строки в шестнадцатеричном виде | |
249 с префиксом “<literal>\x</literal>” | |
250 и последующими двумя шестнадцатеричными цифрами, | |
251 например “<literal>\x80</literal>” (1.9.12). | |
252 </para> | |
253 | |
254 <para> | |
255 Проверка работоспособности считается успешной, если | |
256 <list type="bullet"> | |
257 <listitem> | |
258 TCP-соединение успешно установлено; | |
259 </listitem> | |
260 | |
261 <listitem> | |
262 <value>строка</value> из параметра <literal>send</literal> | |
263 была отправлена (если была задана); | |
264 </listitem> | |
265 | |
266 <listitem> | |
267 данные, полученные от сервера, совпали со строкой или регулярным выражением | |
268 из параметра <literal>expect</literal> (если был задан); | |
269 </listitem> | |
270 | |
271 <listitem> | |
272 истёкшее время не превышает значение, указанное | |
273 в директиве <link id="health_check_timeout"/>. | |
274 </listitem> | |
275 | |
276 </list> | |
277 </para> | |
278 | |
279 <para> | |
280 Пример: | |
281 <example> | |
282 upstream backend { | |
283 zone upstream_backend 10m; | |
284 server 127.0.0.1:12345; | |
285 } | |
286 | |
287 match http { | |
288 send "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n"; | |
289 expect ~ "200 OK"; | |
290 } | |
291 | |
292 server { | |
293 listen 12346; | |
294 proxy_pass backend; | |
295 health_check match=http; | |
296 } | |
297 </example> | |
298 </para> | |
299 | |
300 <para> | |
301 <note> | |
302 Проверяются лишь первые байты данных | |
303 <link doc="ngx_stream_proxy_module.xml" id="proxy_buffer_size"/>, | |
304 полученные от сервера. | |
305 </note> | |
306 </para> | |
307 | |
308 </directive> | |
309 | |
310 </section> | |
311 | |
312 </module> |