Mercurial > hg > nginx-site
comparison xml/ru/docs/http/ngx_http_upstream_module.xml @ 533:fb630c3c5039
Revamped the upstream documentation somewhat.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Fri, 08 Jun 2012 19:05:36 +0000 |
parents | 4f907cde0382 |
children | a9e6a8613534 |
comparison
equal
deleted
inserted
replaced
532:480a4cd56a6a | 533:fb630c3c5039 |
---|---|
10 | 10 |
11 <para> | 11 <para> |
12 Модуль <literal>ngx_http_upstream_module</literal> | 12 Модуль <literal>ngx_http_upstream_module</literal> |
13 позволяет описывать группы серверов, | 13 позволяет описывать группы серверов, |
14 которые могут использоваться в директивах | 14 которые могут использоваться в директивах |
15 <link doc="ngx_http_proxy_module.xml" id="proxy_pass"/> | 15 <link doc="ngx_http_proxy_module.xml" id="proxy_pass"/>, |
16 и <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_pass"/>. | 16 <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_pass"/> и |
17 <link doc="ngx_http_memcached_module.xml" id="memcached_pass"/>. | |
17 </para> | 18 </para> |
18 | 19 |
19 </section> | 20 </section> |
20 | 21 |
21 | 22 |
43 </section> | 44 </section> |
44 | 45 |
45 | 46 |
46 <section id="directives" name="Директивы"> | 47 <section id="directives" name="Директивы"> |
47 | 48 |
49 <directive name="upstream"> | |
50 <syntax block="yes"><value>название</value></syntax> | |
51 <default/> | |
52 <context>http</context> | |
53 | |
54 <para> | |
55 Описывает группу серверов. | |
56 Серверы могут слушать на разных портах. | |
57 Кроме того, можно одновременно использовать серверы, | |
58 слушающие на TCP- и UNIX-сокетах. | |
59 </para> | |
60 | |
61 <para> | |
62 Пример: | |
63 <example> | |
64 upstream backend { | |
65 server backend1.example.com weight=5; | |
66 server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; | |
67 server unix:/tmp/backend3; | |
68 } | |
69 </example> | |
70 </para> | |
71 | |
72 <para> | |
73 По умолчанию запросы распределяются по серверам циклически | |
74 (в режиме round-robin) с учётом весов серверов. | |
75 В вышеприведённом примере каждые 7 запросов будут распределены так: | |
76 5 запросов на <literal>backend1.example.com</literal> | |
77 и по одному запросу на второй и третий серверы. | |
78 Если при попытке работы с сервером произошла ошибка, то запрос будет | |
79 передан следующему серверу, и так до тех пор, пока не будут опробованы | |
80 все работающие серверы. | |
81 Если не удастся получить успешный ответ | |
82 ни от одного из серверов, то клиенту будет возвращён результат работы | |
83 с последним сервером. | |
84 </para> | |
85 | |
86 </directive> | |
87 | |
88 | |
89 <directive name="server"> | |
90 <syntax><value>адрес</value> [<value>параметры</value>]</syntax> | |
91 <default/> | |
92 <context>upstream</context> | |
93 | |
94 <para> | |
95 Задаёт <value>адрес</value> и другие <value>параметры</value> | |
96 сервера. | |
97 Адрес может быть указан в виде доменного имени или IP-адреса, | |
98 и необязательного порта, или в виде пути UNIX-сокета, который | |
99 указывается после префикса “<literal>unix:</literal>”. | |
100 Если порт не указан, используется порт 80. | |
101 Доменное имя, которому соответствует несколько IP-адресов, | |
102 задаёт сразу несколько серверов. | |
103 </para> | |
104 | |
105 <para> | |
106 Могут быть заданы следующие параметры: | |
107 <list type="tag"> | |
108 | |
109 <tag-name><literal>weight</literal>=<value>число</value></tag-name> | |
110 <tag-desc> | |
111 задаёт вес сервера, по умолчанию 1. | |
112 </tag-desc> | |
113 | |
114 <tag-name><literal>max_fails</literal>=<value>число</value></tag-name> | |
115 <tag-desc> | |
116 задаёт число неудачных попыток работы с сервером | |
117 в течение времени, заданного параметром <literal>fail_timeout</literal>, | |
118 после которого он считается неработающим, также в течение времени | |
119 заданного параметром <literal>fail_timeout</literal>. | |
120 По умолчанию число попыток устанавливается равным 1. | |
121 Нулевое значение запрещает учёт попыток. | |
122 Что считается неудачной попыткой, задаётся директивами | |
123 <link doc="ngx_http_proxy_module.xml" id="proxy_next_upstream"/>, | |
124 <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_next_upstream"/> и | |
125 <link doc="ngx_http_memcached_module.xml" id="memcached_next_upstream"/>. | |
126 Состояние <literal>http_404</literal> | |
127 не считается неудачной попыткой. | |
128 </tag-desc> | |
129 | |
130 <tag-name><literal>fail_timeout</literal>=<value>время</value></tag-name> | |
131 <tag-desc> | |
132 задаёт | |
133 <list type="bullet"> | |
134 | |
135 <listitem> | |
136 время, в течение которого должно произойти заданное число неудачных | |
137 попыток работы с сервером для того, чтобы сервер считался неработающим; | |
138 </listitem> | |
139 | |
140 <listitem> | |
141 и время, в течение которого сервер будет считаться неработающим. | |
142 </listitem> | |
143 | |
144 </list> | |
145 По умолчанию таймаут равен 10 секундам. | |
146 </tag-desc> | |
147 | |
148 <tag-name><literal>backup</literal></tag-name> | |
149 <tag-desc> | |
150 помечает сервер как запасной сервер. | |
151 На него будут передаваться запросы в случае, если не работают основные серверы. | |
152 </tag-desc> | |
153 | |
154 <tag-name><literal>down</literal></tag-name> | |
155 <tag-desc> | |
156 помечает сервер как постоянно неработающий; используется | |
157 совместно с директивой <link id="ip_hash"/>. | |
158 </tag-desc> | |
159 | |
160 </list> | |
161 </para> | |
162 | |
163 <para> | |
164 Пример: | |
165 <example> | |
166 upstream backend { | |
167 server backend1.example.com weight=5; | |
168 server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; | |
169 server unix:/tmp/backend3; | |
170 | |
171 server backup1.example.com:8080 backup; | |
172 } | |
173 </example> | |
174 </para> | |
175 | |
176 </directive> | |
177 | |
178 | |
48 <directive name="ip_hash"> | 179 <directive name="ip_hash"> |
49 <syntax/> | 180 <syntax/> |
50 <default/> | 181 <default/> |
51 <context>upstream</context> | 182 <context>upstream</context> |
52 | 183 |
53 <para> | 184 <para> |
54 Задаёт для группы метод распределения запросов по серверам | 185 Задаёт для группы метод балансировки нагрузки, при котором запросы |
55 на основе IP-адресов клиентов. | 186 распределяются по серверам на основе IP-адресов клиентов. |
56 В качестве ключа для хэширования используется сеть класса C, | 187 В качестве ключа для хэширования используются первые три |
57 в которой находится адрес клиента. | 188 октета IPv4-адреса клиента. |
58 Метод гарантирует, что запросы одного и того же клиента | 189 Метод гарантирует, что запросы одного и того же клиента |
59 будут всегда передаваться на один и тот же сервер. | 190 будут всегда передаваться на один и тот же сервер. |
60 Если же этот сервер будет считаться неработающим, | 191 Если же этот сервер будет считаться неработающим, |
61 то запросы этого клиента будут передаваться на другой сервер. | 192 то запросы этого клиента будут передаваться на другой сервер. |
62 С большой долей вероятности это также будет один и тот же сервер. | 193 С большой долей вероятности это также будет один и тот же сервер. |
82 </example> | 213 </example> |
83 </para> | 214 </para> |
84 | 215 |
85 <para> | 216 <para> |
86 <note> | 217 <note> |
87 До версии 1.3.1 для серверов, использующих метод распределения | 218 До версии 1.3.1 для серверов, использующих метод балансировки нагрузки |
88 <literal>ip_hash</literal>, нельзя было задать вес. | 219 <literal>ip_hash</literal>, нельзя было задать вес. |
89 </note> | 220 </note> |
90 </para> | 221 </para> |
91 | 222 |
92 </directive> | 223 </directive> |
197 </example> | 328 </example> |
198 </para> | 329 </para> |
199 | 330 |
200 <para> | 331 <para> |
201 <note> | 332 <note> |
202 При использовании модулей балансировки нагрузки, отличных | 333 При использовании методов балансировки нагрузки, отличных |
203 от стандартного round-robin, следует активировать их до | 334 от стандартного round-robin, следует активировать их до |
204 директивы <literal>keepalive</literal>. | 335 директивы <literal>keepalive</literal>. |
205 </note> | 336 </note> |
206 | 337 |
207 <note> | 338 <note> |
217 <default/> | 348 <default/> |
218 <context>upstream</context> | 349 <context>upstream</context> |
219 <appeared-in>1.3.1</appeared-in> | 350 <appeared-in>1.3.1</appeared-in> |
220 | 351 |
221 <para> | 352 <para> |
222 Задаёт для группы метод распределения запросов по серверам, при | 353 Задаёт для группы метод балансировки нагрузки, при котором запрос |
223 котором запрос передаётся серверу с наименьшим числом активных соединений, | 354 передаётся серверу с наименьшим числом активных соединений, |
224 с учётом весов серверов. | 355 с учётом весов серверов. |
225 Если подходит сразу несколько серверов, они выбираются циклически | 356 Если подходит сразу несколько серверов, они выбираются циклически |
226 (в режиме round-robin) с учётом их весов. | 357 (в режиме round-robin) с учётом их весов. |
227 </para> | |
228 | |
229 </directive> | |
230 | |
231 | |
232 <directive name="server"> | |
233 <syntax><value>имя</value> [<value>параметры</value>]</syntax> | |
234 <default/> | |
235 <context>upstream</context> | |
236 | |
237 <para> | |
238 Задаёт <value>имя</value> и другие <value>параметры</value> сервера. | |
239 В качестве имени можно использовать доменное имя, адрес, порт или путь | |
240 UNIX-сокета. | |
241 Если доменному имени соответствует несколько адресов, то все они используются. | |
242 <list type="tag"> | |
243 | |
244 <tag-name><literal>weight</literal>=<value>число</value></tag-name> | |
245 <tag-desc> | |
246 задаёт вес сервера, по умолчанию 1. | |
247 </tag-desc> | |
248 | |
249 <tag-name><literal>max_fails</literal>=<value>число</value></tag-name> | |
250 <tag-desc> | |
251 задаёт число неудачных попыток работы с сервером | |
252 в течение времени, заданного параметром <literal>fail_timeout</literal>, | |
253 после которого он считается неработающим, также в течение времени | |
254 заданного параметром <literal>fail_timeout</literal>. | |
255 По умолчанию число попыток устанавливается равным 1. | |
256 Нулевое значение запрещает учёт попыток. | |
257 Что считается неудачной попыткой, задаётся директивами | |
258 <link doc="ngx_http_proxy_module.xml" id="proxy_next_upstream"/> | |
259 и <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_next_upstream"/>. | |
260 Состояние <literal>http_404</literal> | |
261 не считается неудачной попыткой. | |
262 </tag-desc> | |
263 | |
264 <tag-name><literal>fail_timeout</literal>=<value>время</value></tag-name> | |
265 <tag-desc> | |
266 задаёт | |
267 <list type="bullet"> | |
268 | |
269 <listitem> | |
270 время, в течение которого должно произойти заданное число неудачных | |
271 попыток работы с сервером для того, чтобы сервер считался неработающим; | |
272 </listitem> | |
273 | |
274 <listitem> | |
275 и время, в течение которого сервер будет считаться неработающим. | |
276 </listitem> | |
277 | |
278 </list> | |
279 По умолчанию таймаут равен 10 секундам. | |
280 </tag-desc> | |
281 | |
282 <tag-name><literal>backup</literal></tag-name> | |
283 <tag-desc> | |
284 помечает сервер как запасной сервер. | |
285 На него будут передаваться запросы в случае, если не работают основные серверы. | |
286 </tag-desc> | |
287 | |
288 <tag-name><literal>down</literal></tag-name> | |
289 <tag-desc> | |
290 помечает сервер как постоянно неработающий; используется | |
291 совместно с директивой <link id="ip_hash"/>. | |
292 </tag-desc> | |
293 | |
294 </list> | |
295 </para> | |
296 | |
297 <para> | |
298 Пример: | |
299 <example> | |
300 upstream backend { | |
301 server backend1.example.com weight=5; | |
302 server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; | |
303 server unix:/tmp/backend3; | |
304 | |
305 server backup1.example.com:8080 backup; | |
306 } | |
307 </example> | |
308 </para> | |
309 | |
310 </directive> | |
311 | |
312 | |
313 <directive name="upstream"> | |
314 <syntax block="yes"><value>название</value></syntax> | |
315 <default/> | |
316 <context>http</context> | |
317 | |
318 <para> | |
319 Описывает группу серверов. | |
320 Серверы могут слушать на разных портах. | |
321 Кроме того, можно одновременно использовать серверы, | |
322 слушающие на TCP- и UNIX-сокетах. | |
323 </para> | |
324 | |
325 <para> | |
326 Пример: | |
327 <example> | |
328 upstream backend { | |
329 server backend1.example.com weight=5; | |
330 server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; | |
331 server unix:/tmp/backend3; | |
332 } | |
333 </example> | |
334 </para> | |
335 | |
336 <para> | |
337 Запросы распределяются по серверам циклически (в режиме round-robin) | |
338 с учётом весов серверов. | |
339 В вышеприведённом примере каждые 7 запросов будут распределены так: | |
340 5 запросов на <literal>backend1.example.com</literal> | |
341 и по одному запросу на второй и третий серверы. | |
342 Если при попытке работы с сервером произошла ошибка, то запрос будет | |
343 передан следующему серверу, и так до тех пор, пока не будут опробованы | |
344 все работающие серверы. | |
345 Если не удастся получить успешный ответ | |
346 ни от одного из серверов, то клиенту будет возвращён результат работы | |
347 с последним сервером. | |
348 </para> | 358 </para> |
349 | 359 |
350 </directive> | 360 </directive> |
351 | 361 |
352 </section> | 362 </section> |