Mercurial > hg > nginx-site
comparison 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 |
comparison
equal
deleted
inserted
replaced
1944:dbf6f05f0808 | 1945:88477c5d2751 |
---|---|
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_http_upstream_hc_module" | |
10 link="/ru/docs/http/ngx_http_upstream_hc_module.html" | |
11 lang="ru" | |
12 rev="1"> | |
13 | |
14 <section id="summary"> | |
15 | |
16 <para> | |
17 Модуль <literal>ngx_http_upstream_hc_module</literal> | |
18 позволяет активировать периодические проверки работоспособности серверов в | |
19 <link doc="ngx_http_upstream_module.xml" id="upstream">группе</link>, | |
20 указанной в содержащем location. | |
21 </para> | |
22 | |
23 <para> | |
24 <note> | |
25 Модуль доступен как часть | |
26 <commercial_version>коммерческой подписки</commercial_version>. | |
27 </note> | |
28 </para> | |
29 | |
30 </section> | |
31 | |
32 | |
33 <section id="example" name="Пример конфигурации"> | |
34 | |
35 <para> | |
36 <example> | |
37 upstream dynamic { | |
38 zone upstream_dynamic 64k; | |
39 | |
40 server backend1.example.com weight=5; | |
41 server backend2.example.com:8080 fail_timeout=5s slow_start=30s; | |
42 server 192.0.2.1 max_fails=3; | |
43 | |
44 server backup1.example.com:8080 backup; | |
45 server backup2.example.com:8080 backup; | |
46 } | |
47 | |
48 server { | |
49 location / { | |
50 proxy_pass http://dynamic; | |
51 health_check; | |
52 } | |
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>location</context> | |
66 | |
67 <para> | |
68 Активирует периодические проверки работоспособности серверов в | |
69 <link doc="ngx_http_upstream_module.xml" id="upstream">группе</link>, | |
70 указанной в содержащем location. | |
71 </para> | |
72 | |
73 <para> | |
74 Могут быть заданы следующие необязательные параметры: | |
75 <list type="tag"> | |
76 | |
77 <tag-name id="interval"> | |
78 <literal>interval</literal>=<value>время</value> | |
79 </tag-name> | |
80 <tag-desc> | |
81 задаёт интервал между двумя последовательными проверками, | |
82 по умолчанию 5 секунд. | |
83 </tag-desc> | |
84 | |
85 <tag-name id="health_check_jitter"> | |
86 <literal>jitter</literal>=<value>время</value> | |
87 </tag-name> | |
88 <tag-desc> | |
89 задаёт время, в пределах которого | |
90 случайным образом задерживается каждая проверка, | |
91 по умолчанию задержки нет. | |
92 </tag-desc> | |
93 | |
94 <tag-name id="fails"> | |
95 <literal>fails</literal>=<value>число</value> | |
96 </tag-name> | |
97 <tag-desc> | |
98 задаёт число последовательных неуспешных проверок для определённого сервера, | |
99 после которых сервер будет считаться неработоспособным, | |
100 по умолчанию 1. | |
101 </tag-desc> | |
102 | |
103 <tag-name id="passes"> | |
104 <literal>passes</literal>=<value>число</value> | |
105 </tag-name> | |
106 <tag-desc> | |
107 задаёт число последовательных успешных проверок для определённого сервера, | |
108 после которых сервер будет считаться работоспособным, | |
109 по умолчанию 1. | |
110 </tag-desc> | |
111 | |
112 <tag-name id="uri"> | |
113 <literal>uri</literal>=<value>uri</value> | |
114 </tag-name> | |
115 <tag-desc> | |
116 задаёт URI, используемый в запросах, проверяющих работоспособность, | |
117 по умолчанию “<literal>/</literal>”. | |
118 </tag-desc> | |
119 | |
120 <tag-name id="health_check_mandatory"> | |
121 <literal>mandatory</literal> | |
122 </tag-name> | |
123 <tag-desc> | |
124 устанавливает исходное состояние “checking” для сервера | |
125 до завершения первой проверки работоспособности (1.11.7). | |
126 Если параметр не указан, | |
127 то исходно сервер будет считаться работоспособным. | |
128 </tag-desc> | |
129 | |
130 <tag-name id="hc_match"> | |
131 <literal>match</literal>=<value>имя</value> | |
132 </tag-name> | |
133 <tag-desc> | |
134 указывает на блок <literal>match</literal> с условиями, которым должен | |
135 удовлетворять ответ, чтобы результат проверки считался успешным. | |
136 По умолчанию код ответа должен быть 2xx или 3xx. | |
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_http_upstream_module.xml" id="server">сервера</link>. | |
147 </tag-desc> | |
148 | |
149 </list> | |
150 </para> | |
151 | |
152 <para> | |
153 В примере | |
154 <example> | |
155 location / { | |
156 proxy_pass http://backend; | |
157 health_check; | |
158 } | |
159 </example> | |
160 каждому серверу группы <literal>backend</literal> | |
161 с интервалом в 5 секунд посылаются запросы “<literal>/</literal>”. | |
162 Если происходит ошибка или таймаут при работе с сервером, или | |
163 код ответа проксируемого сервера не равен | |
164 2xx или 3xx, проверка считается неуспешной и сервер | |
165 признаётся неработоспособным. | |
166 На неработоспособные серверы и серверы в состоянии “checking” | |
167 клиентские запросы передаваться не будут. | |
168 </para> | |
169 | |
170 <para> | |
171 Проверки работоспособности могут тестировать код ответа, | |
172 наличие или отсутствие определённых полей заголовка и их значений, | |
173 а также содержимое тела ответа. | |
174 Тесты настраиваются отдельно при помощи директивы <link id="match"/> | |
175 и указываются в параметре <literal>match</literal>. | |
176 Например: | |
177 <example> | |
178 http { | |
179 server { | |
180 ... | |
181 location / { | |
182 proxy_pass http://backend; | |
183 health_check match=welcome; | |
184 } | |
185 } | |
186 | |
187 match welcome { | |
188 status 200; | |
189 header Content-Type = text/html; | |
190 body ~ "Welcome to nginx!"; | |
191 } | |
192 } | |
193 </example> | |
194 В такой конфигурации успешный ответ на проверочный запрос | |
195 должен иметь код 200, тип содержимого “<literal>text/html</literal>” | |
196 и “<literal>Welcome to nginx!</literal>” в теле ответа. | |
197 </para> | |
198 | |
199 <para> | |
200 Группа должна находиться в | |
201 <link doc="ngx_http_upstream_module.xml" id="zone">зоне разделяемой памяти</link>. | |
202 </para> | |
203 | |
204 <para> | |
205 Если для группы задано несколько проверок, | |
206 то при любой неуспешной проверке соответствующий сервер будет | |
207 считаться неработоспособным. | |
208 </para> | |
209 | |
210 <para> | |
211 <note> | |
212 Обратите внимание, что при использовании проверок | |
213 большинство переменных имеют пустые значения. | |
214 </note> | |
215 </para> | |
216 | |
217 </directive> | |
218 | |
219 | |
220 <directive name="match"> | |
221 <syntax block="yes"><value>имя</value></syntax> | |
222 <default/> | |
223 <context>http</context> | |
224 | |
225 <para> | |
226 Задаёт именованный набор тестов для анализа ответов | |
227 на запросы проверки работоспособности. | |
228 </para> | |
229 | |
230 <para> | |
231 В ответе могут быть протестированы следующие объекты: | |
232 <list type="tag"> | |
233 | |
234 <tag-name><literal>status 200;</literal></tag-name> | |
235 <tag-desc>код ответа равен 200</tag-desc> | |
236 | |
237 <tag-name><literal>status ! 500;</literal></tag-name> | |
238 <tag-desc>код ответа не равен 500</tag-desc> | |
239 | |
240 <tag-name><literal>status 200 204;</literal></tag-name> | |
241 <tag-desc>код ответа равен 200 или 204</tag-desc> | |
242 | |
243 <tag-name><literal>status ! 301 302;</literal></tag-name> | |
244 <tag-desc>код ответа не равен ни 301, ни 302</tag-desc> | |
245 | |
246 <tag-name><literal>status 200-399;</literal></tag-name> | |
247 <tag-desc>код ответа находится в диапазоне от 200 до 399</tag-desc> | |
248 | |
249 <tag-name><literal>status ! 400-599;</literal></tag-name> | |
250 <tag-desc>код ответа находится вне диапазона от 400 до 599</tag-desc> | |
251 | |
252 <tag-name><literal>status 301-303 307;</literal></tag-name> | |
253 <tag-desc>код ответа равен 301, 302, 303 или 307</tag-desc> | |
254 | |
255 </list> | |
256 | |
257 <list type="tag"> | |
258 | |
259 <tag-name><literal>header Content-Type = text/html;</literal></tag-name> | |
260 <tag-desc> | |
261 заголовок содержит <header>Content-Type</header> | |
262 со значением <literal>text/html</literal> | |
263 </tag-desc> | |
264 | |
265 <tag-name><literal>header Content-Type != text/html;</literal></tag-name> | |
266 <tag-desc> | |
267 заголовок содержит <header>Content-Type</header> | |
268 со значением, отличным от <literal>text/html</literal> | |
269 </tag-desc> | |
270 | |
271 <tag-name><literal>header Connection ~ close;</literal></tag-name> | |
272 <tag-desc> | |
273 заголовок содержит <header>Connection</header> | |
274 со значением, совпадающим с регулярным выражением <literal>close</literal> | |
275 </tag-desc> | |
276 | |
277 <tag-name><literal>header Connection !~ close;</literal></tag-name> | |
278 <tag-desc> | |
279 заголовок содержит <header>Connection</header> | |
280 со значением, не совпадающим с регулярным выражением <literal>close</literal> | |
281 </tag-desc> | |
282 | |
283 <tag-name><literal>header Host;</literal></tag-name> | |
284 <tag-desc>заголовок содержит <header>Host</header></tag-desc> | |
285 | |
286 <tag-name><literal>header ! X-Accel-Redirect;</literal></tag-name> | |
287 <tag-desc>заголовок не содержит <header>X-Accel-Redirect</header></tag-desc> | |
288 | |
289 </list> | |
290 | |
291 <list type="tag"> | |
292 | |
293 <tag-name><literal>body ~ "Welcome to nginx!";</literal></tag-name> | |
294 <tag-desc> | |
295 тело ответа совпадает с регулярным выражением | |
296 “<literal>Welcome to nginx!</literal>” | |
297 </tag-desc> | |
298 | |
299 <tag-name><literal>body !~ "Welcome to nginx!";</literal></tag-name> | |
300 <tag-desc> | |
301 тело ответа не совпадает с регулярным выражением | |
302 “<literal>Welcome to nginx!</literal>” | |
303 </tag-desc> | |
304 | |
305 </list> | |
306 </para> | |
307 | |
308 <para> | |
309 Если задано несколько тестов, | |
310 то ответ должен удовлетворять всем тестам. | |
311 <note> | |
312 Проверяются только первые 256 Кбайт тела ответа. | |
313 </note> | |
314 </para> | |
315 | |
316 <para> | |
317 Примеры: | |
318 <example> | |
319 # код ответа 200, тип содержимого "text/html" | |
320 # и тело ответа содержит "Welcome to nginx!" | |
321 match welcome { | |
322 status 200; | |
323 header Content-Type = text/html; | |
324 body ~ "Welcome to nginx!"; | |
325 } | |
326 </example> | |
327 | |
328 <example> | |
329 # код ответа не равен 301, 302, 303 и 307 и заголовок не содержит "Refresh:" | |
330 match not_redirect { | |
331 status ! 301-303 307; | |
332 header ! Refresh; | |
333 } | |
334 </example> | |
335 | |
336 <example> | |
337 # код ответа успешный и сервер не в сервисном режиме | |
338 match server_ok { | |
339 status 200-399; | |
340 body !~ "maintenance mode"; | |
341 } | |
342 </example> | |
343 | |
344 </para> | |
345 | |
346 </directive> | |
347 | |
348 </section> | |
349 | |
350 </module> |