Mercurial > hg > nginx-site
diff 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 |
line wrap: on
line diff
--- a/xml/ru/docs/http/ngx_http_upstream_module.xml +++ b/xml/ru/docs/http/ngx_http_upstream_module.xml @@ -12,8 +12,9 @@ Модуль <literal>ngx_http_upstream_module</literal> позволяет описывать группы серверов, которые могут использоваться в директивах -<link doc="ngx_http_proxy_module.xml" id="proxy_pass"/> -и <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_pass"/>. +<link doc="ngx_http_proxy_module.xml" id="proxy_pass"/>, +<link doc="ngx_http_fastcgi_module.xml" id="fastcgi_pass"/> и +<link doc="ngx_http_memcached_module.xml" id="memcached_pass"/>. </para> </section> @@ -45,16 +46,146 @@ server { <section id="directives" name="Директивы"> +<directive name="upstream"> +<syntax block="yes"><value>название</value></syntax> +<default/> +<context>http</context> + +<para> +Описывает группу серверов. +Серверы могут слушать на разных портах. +Кроме того, можно одновременно использовать серверы, +слушающие на TCP- и UNIX-сокетах. +</para> + +<para> +Пример: +<example> +upstream backend { + server backend1.example.com weight=5; + server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; + server unix:/tmp/backend3; +} +</example> +</para> + +<para> +По умолчанию запросы распределяются по серверам циклически +(в режиме round-robin) с учётом весов серверов. +В вышеприведённом примере каждые 7 запросов будут распределены так: +5 запросов на <literal>backend1.example.com</literal> +и по одному запросу на второй и третий серверы. +Если при попытке работы с сервером произошла ошибка, то запрос будет +передан следующему серверу, и так до тех пор, пока не будут опробованы +все работающие серверы. +Если не удастся получить успешный ответ +ни от одного из серверов, то клиенту будет возвращён результат работы +с последним сервером. +</para> + +</directive> + + +<directive name="server"> +<syntax><value>адрес</value> [<value>параметры</value>]</syntax> +<default/> +<context>upstream</context> + +<para> +Задаёт <value>адрес</value> и другие <value>параметры</value> +сервера. +Адрес может быть указан в виде доменного имени или IP-адреса, +и необязательного порта, или в виде пути UNIX-сокета, который +указывается после префикса “<literal>unix:</literal>”. +Если порт не указан, используется порт 80. +Доменное имя, которому соответствует несколько IP-адресов, +задаёт сразу несколько серверов. +</para> + +<para> +Могут быть заданы следующие параметры: +<list type="tag"> + +<tag-name><literal>weight</literal>=<value>число</value></tag-name> +<tag-desc> +задаёт вес сервера, по умолчанию 1. +</tag-desc> + +<tag-name><literal>max_fails</literal>=<value>число</value></tag-name> +<tag-desc> +задаёт число неудачных попыток работы с сервером +в течение времени, заданного параметром <literal>fail_timeout</literal>, +после которого он считается неработающим, также в течение времени +заданного параметром <literal>fail_timeout</literal>. +По умолчанию число попыток устанавливается равным 1. +Нулевое значение запрещает учёт попыток. +Что считается неудачной попыткой, задаётся директивами +<link doc="ngx_http_proxy_module.xml" id="proxy_next_upstream"/>, +<link doc="ngx_http_fastcgi_module.xml" id="fastcgi_next_upstream"/> и +<link doc="ngx_http_memcached_module.xml" id="memcached_next_upstream"/>. +Состояние <literal>http_404</literal> +не считается неудачной попыткой. +</tag-desc> + +<tag-name><literal>fail_timeout</literal>=<value>время</value></tag-name> +<tag-desc> +задаёт +<list type="bullet"> + +<listitem> +время, в течение которого должно произойти заданное число неудачных +попыток работы с сервером для того, чтобы сервер считался неработающим; +</listitem> + +<listitem> +и время, в течение которого сервер будет считаться неработающим. +</listitem> + +</list> +По умолчанию таймаут равен 10 секундам. +</tag-desc> + +<tag-name><literal>backup</literal></tag-name> +<tag-desc> +помечает сервер как запасной сервер. +На него будут передаваться запросы в случае, если не работают основные серверы. +</tag-desc> + +<tag-name><literal>down</literal></tag-name> +<tag-desc> +помечает сервер как постоянно неработающий; используется +совместно с директивой <link id="ip_hash"/>. +</tag-desc> + +</list> +</para> + +<para> +Пример: +<example> +upstream backend { + server backend1.example.com weight=5; + server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; + server unix:/tmp/backend3; + + server backup1.example.com:8080 backup; +} +</example> +</para> + +</directive> + + <directive name="ip_hash"> <syntax/> <default/> <context>upstream</context> <para> -Задаёт для группы метод распределения запросов по серверам -на основе IP-адресов клиентов. -В качестве ключа для хэширования используется сеть класса C, -в которой находится адрес клиента. +Задаёт для группы метод балансировки нагрузки, при котором запросы +распределяются по серверам на основе IP-адресов клиентов. +В качестве ключа для хэширования используются первые три +октета IPv4-адреса клиента. Метод гарантирует, что запросы одного и того же клиента будут всегда передаваться на один и тот же сервер. Если же этот сервер будет считаться неработающим, @@ -84,7 +215,7 @@ upstream backend { <para> <note> -До версии 1.3.1 для серверов, использующих метод распределения +До версии 1.3.1 для серверов, использующих метод балансировки нагрузки <literal>ip_hash</literal>, нельзя было задать вес. </note> </para> @@ -199,7 +330,7 @@ server { <para> <note> -При использовании модулей балансировки нагрузки, отличных +При использовании методов балансировки нагрузки, отличных от стандартного round-robin, следует активировать их до директивы <literal>keepalive</literal>. </note> @@ -219,8 +350,8 @@ server { <appeared-in>1.3.1</appeared-in> <para> -Задаёт для группы метод распределения запросов по серверам, при -котором запрос передаётся серверу с наименьшим числом активных соединений, +Задаёт для группы метод балансировки нагрузки, при котором запрос +передаётся серверу с наименьшим числом активных соединений, с учётом весов серверов. Если подходит сразу несколько серверов, они выбираются циклически (в режиме round-robin) с учётом их весов. @@ -228,127 +359,6 @@ server { </directive> - -<directive name="server"> -<syntax><value>имя</value> [<value>параметры</value>]</syntax> -<default/> -<context>upstream</context> - -<para> -Задаёт <value>имя</value> и другие <value>параметры</value> сервера. -В качестве имени можно использовать доменное имя, адрес, порт или путь -UNIX-сокета. -Если доменному имени соответствует несколько адресов, то все они используются. -<list type="tag"> - -<tag-name><literal>weight</literal>=<value>число</value></tag-name> -<tag-desc> -задаёт вес сервера, по умолчанию 1. -</tag-desc> - -<tag-name><literal>max_fails</literal>=<value>число</value></tag-name> -<tag-desc> -задаёт число неудачных попыток работы с сервером -в течение времени, заданного параметром <literal>fail_timeout</literal>, -после которого он считается неработающим, также в течение времени -заданного параметром <literal>fail_timeout</literal>. -По умолчанию число попыток устанавливается равным 1. -Нулевое значение запрещает учёт попыток. -Что считается неудачной попыткой, задаётся директивами -<link doc="ngx_http_proxy_module.xml" id="proxy_next_upstream"/> -и <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_next_upstream"/>. -Состояние <literal>http_404</literal> -не считается неудачной попыткой. -</tag-desc> - -<tag-name><literal>fail_timeout</literal>=<value>время</value></tag-name> -<tag-desc> -задаёт -<list type="bullet"> - -<listitem> -время, в течение которого должно произойти заданное число неудачных -попыток работы с сервером для того, чтобы сервер считался неработающим; -</listitem> - -<listitem> -и время, в течение которого сервер будет считаться неработающим. -</listitem> - -</list> -По умолчанию таймаут равен 10 секундам. -</tag-desc> - -<tag-name><literal>backup</literal></tag-name> -<tag-desc> -помечает сервер как запасной сервер. -На него будут передаваться запросы в случае, если не работают основные серверы. -</tag-desc> - -<tag-name><literal>down</literal></tag-name> -<tag-desc> -помечает сервер как постоянно неработающий; используется -совместно с директивой <link id="ip_hash"/>. -</tag-desc> - -</list> -</para> - -<para> -Пример: -<example> -upstream backend { - server backend1.example.com weight=5; - server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; - server unix:/tmp/backend3; - - server backup1.example.com:8080 backup; -} -</example> -</para> - -</directive> - - -<directive name="upstream"> -<syntax block="yes"><value>название</value></syntax> -<default/> -<context>http</context> - -<para> -Описывает группу серверов. -Серверы могут слушать на разных портах. -Кроме того, можно одновременно использовать серверы, -слушающие на TCP- и UNIX-сокетах. -</para> - -<para> -Пример: -<example> -upstream backend { - server backend1.example.com weight=5; - server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; - server unix:/tmp/backend3; -} -</example> -</para> - -<para> -Запросы распределяются по серверам циклически (в режиме round-robin) -с учётом весов серверов. -В вышеприведённом примере каждые 7 запросов будут распределены так: -5 запросов на <literal>backend1.example.com</literal> -и по одному запросу на второй и третий серверы. -Если при попытке работы с сервером произошла ошибка, то запрос будет -передан следующему серверу, и так до тех пор, пока не будут опробованы -все работающие серверы. -Если не удастся получить успешный ответ -ни от одного из серверов, то клиенту будет возвращён результат работы -с последним сервером. -</para> - -</directive> - </section>