annotate xml/ru/docs/http/ngx_http_upstream_module.xml @ 367:f4033b9bc4ec

- Removed unnecessary instances of unbreakable space. - Made sure that unbreakable space always precedes "em dash".
author Ruslan Ermilov <ru@nginx.com>
date Fri, 27 Jan 2012 15:51:39 +0000
parents da8c7db64391
children 4f907cde0382
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
222
bfe3eff81d04 Removed redundant encoding specification.
Ruslan Ermilov <ru@nginx.com>
parents: 135
diff changeset
1 <?xml version="1.0"?>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
5 <module name="Модуль ngx_http_upstream_module"
135
edf8c90f8085 Renamed ngx_http_upstream to ngx_http_upstream_module.
Ruslan Ermilov <ru@nginx.com>
parents: 110
diff changeset
6 link="/ru/docs/http/ngx_http_upstream_module.html"
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 lang="ru">
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
110
40eec261c2a6 Added proper support for anonymous sections, notably for the summary.
Ruslan Ermilov <ru@nginx.com>
parents: 108
diff changeset
9 <section id="summary">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11 <para>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
12 Модуль <literal>ngx_http_upstream_module</literal>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
13 позволяет описывать группы серверов,
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 которые могут использоваться в директивах
106
56457a474903 If text of the link is not provided, the @id is used.
Ruslan Ermilov <ru@nginx.com>
parents: 102
diff changeset
15 <link doc="ngx_http_proxy_module.xml" id="proxy_pass"/>
56457a474903 If text of the link is not provided, the @id is used.
Ruslan Ermilov <ru@nginx.com>
parents: 102
diff changeset
16 и <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_pass"/>.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 </section>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
22 <section id="example" name="Пример конфигурации">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 <para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 <example>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
26 upstream <emphasis>backend</emphasis> {
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
27 server backend1.example.com weight=5;
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
28 server backend2.example.com:8080;
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
29 server unix:/tmp/backend3;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
31 server backup1.example.com:8080 backup;
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
32 server backup2.example.com:8080 backup;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 server {
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36 location / {
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
37 proxy_pass http://<emphasis>backend</emphasis>;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 </section>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
46 <section id="directives" name="Директивы">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 <directive name="ip_hash">
102
c76a257f3fd4 The directive name is now automatically printed in <default> and <syntax>.
Ruslan Ermilov <ru@nginx.com>
parents: 99
diff changeset
49 <syntax/>
99
1d315ef37215 The case <default/> is now language-agnostic.
Ruslan Ermilov <ru@nginx.com>
parents: 79
diff changeset
50 <default/>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 <context>upstream</context>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 <para>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
54 Задаёт для группы метод распределения запросов по серверам
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
55 на основе IP-адресов клиентов.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
56 В качестве ключа для хэширования используется сеть класса C,
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
57 в которой находится адрес клиента.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
58 Метод гарантирует, что запросы одного и того же клиента
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
59 будут всегда передаваться на один и тот же сервер.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
60 Если же этот сервер будет считаться неработающим,
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
61 то запросы этого клиента будут передаваться на другой сервер.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
62 С большой долей вероятности это также будет один и тот же сервер.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 <para>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
66 Для серверов, использующих метод распределения <literal>ip_hash</literal>,
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
67 нельзя задать вес.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 Если один из серверов нужно убрать на некоторое время, то для сохранения
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
69 текущего хэширования IP-адресов клиентов этот сервер нужно пометить
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
70 параметром <literal>down</literal>.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 <para>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
74 Пример:
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75 <example>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
76 upstream backend {
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77 ip_hash;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
79 server backend1.example.com;
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
80 server backend2.example.com;
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
81 server backend3.example.com <emphasis>down</emphasis>;
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
82 server backend4.example.com;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87 </directive>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89
316
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
90 <directive name="keepalive">
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
91 <syntax><value>соединения</value></syntax>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
92 <default/>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
93 <context>upstream</context>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
94 <appeared-in>1.1.4</appeared-in>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
95
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
96 <para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
97 Задействует кэш соединений для группы серверов.
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
98 </para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
99
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
100 <para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
101 Параметр <value>соединения</value> устанавливает максимальное число
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
102 постоянных соединений с серверами группы, которые будут сохраняться
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
103 в кэше каждого рабочего процесса.
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
104 При превышении указанного числа неактивных постоянных соединений
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
105 с серверами группы самые старые соединения закрываются.
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
106 <note>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
107 Следует отметить, что директива <literal>keepalive</literal>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
108 не ограничивает общее число соединений, которые рабочие процессы
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
109 nginx могут открыть с серверами группы.
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
110 Новые соединения всегда создаются по мере необходимости.
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
111 Параметр <value>соединения</value> следует устанавливать
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
112 достаточно консервативно для обеспечения возможности
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
113 обработки серверами группы новых входящих соединений.
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
114 </note>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
115 </para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
116
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
117 <para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
118 Пример конфигурации группы серверов memcached с постоянными соединениями:
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
119 <example>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
120 upstream memcached_backend {
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
121 server 127.0.0.1:11211;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
122 server 10.0.0.2:11211;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
123
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
124 keepalive 32;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
125 }
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
126
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
127 server {
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
128 ...
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
129
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
130 location /memcached/ {
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
131 set $memcached_key $uri;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
132 memcached_pass memcached_backend;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
133 }
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
134
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
135 }
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
136 </example>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
137 </para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
138
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
139 <para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
140 Для HTTP директиву
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
141 <link doc="ngx_http_proxy_module.xml" id="proxy_http_version"/>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
142 следует установить в “<literal>1.1</literal>”,
367
f4033b9bc4ec - Removed unnecessary instances of unbreakable space.
Ruslan Ermilov <ru@nginx.com>
parents: 325
diff changeset
143 а поле заголовка <header>Connection</header> — очистить:
316
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
144 <example>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
145 upstream http_backend {
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
146 server 127.0.0.1:8080;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
147
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
148 keepalive 16;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
149 }
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
150
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
151 server {
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
152 ...
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
153
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
154 location /http/ {
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
155 proxy_pass http://http_backend;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
156 proxy_http_version 1.1;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
157 proxy_set_header Connection "";
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
158 ...
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
159 }
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
160 }
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
161 </example>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
162 </para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
163
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
164 <para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
165 <note>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
166 Хоть это и не рекомендуется, но также возможно использование постоянных
325
da8c7db64391 Consistently translate "header field".
Ruslan Ermilov <ru@nginx.com>
parents: 316
diff changeset
167 соединений в HTTP/1.0, путём передачи поля заголовка
316
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
168 <header>Connection: Keep-Alive</header> серверу группы.
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
169 </note>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
170 </para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
171
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
172 <para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
173 Для работы постоянных соединений с FastCGI-серверами потребуется
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
174 включить директиву
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
175 <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_keep_conn"/>:
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
176 <example>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
177 upstream fastcgi_backend {
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
178 server 127.0.0.1:9000;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
179
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
180 keepalive 8;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
181 }
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
182
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
183 server {
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
184 ...
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
185
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
186 location /fastcgi/ {
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
187 fastcgi_pass fastcgi_backend;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
188 fastcgi_keep_conn on;
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
189 ...
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
190 }
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
191 }
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
192 </example>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
193 </para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
194
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
195 <para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
196 <note>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
197 При использовании модулей балансировки нагрузки, отличных
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
198 от стандартного round-robin, следует активировать их до
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
199 директивы <literal>keepalive</literal>.
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
200 </note>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
201
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
202 <note>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
203 Протоколы SCGI и uwsgi не определяют семантику постоянных соединений.
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
204 </note>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
205 </para>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
206
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
207 </directive>
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
208
1fb1c077658b Documented the following directives: "keepalive", "proxy_http_version",
Ruslan Ermilov <ru@nginx.com>
parents: 292
diff changeset
209
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
210 <directive name="server">
271
4c6d2c614d2c Cleaned up XML tag mess:
Ruslan Ermilov <ru@nginx.com>
parents: 256
diff changeset
211 <syntax><value>название</value> [<value>параметры</value>]</syntax>
99
1d315ef37215 The case <default/> is now language-agnostic.
Ruslan Ermilov <ru@nginx.com>
parents: 79
diff changeset
212 <default/>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
213 <context>upstream</context>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
214
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
215 <para>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
216 Задаёт <value>имя</value> и другие <value>параметры</value> сервера.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
217 В качестве имени можно использовать доменное имя, адрес, порт или путь
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
218 UNIX-сокета.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
219 Если доменному имени соответствует несколько адресов, то все они используются.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
220 <list type="tag">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
221
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
222 <tag-name><literal>weight</literal>=<value>число</value></tag-name>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
223 <tag-desc>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
224 задаёт вес сервера, по умолчанию 1.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
225 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
226
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
227 <tag-name><literal>max_fails</literal>=<value>число</value></tag-name>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
228 <tag-desc>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
229 задаёт число неудачных попыток работы с сервером
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
230 в течение времени, заданного параметром <literal>fail_timeout</literal>,
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
231 после которого он считается неработающим, также в течение времени
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
232 заданного параметром <literal>fail_timeout</literal>.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
233 По умолчанию число попыток устанавливается равным 1.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
234 Нулевое значение запрещает учёт попыток.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
235 Что считается неудачной попыткой, задаётся директивами
106
56457a474903 If text of the link is not provided, the @id is used.
Ruslan Ermilov <ru@nginx.com>
parents: 102
diff changeset
236 <link doc="ngx_http_proxy_module.xml" id="proxy_next_upstream"/>
56457a474903 If text of the link is not provided, the @id is used.
Ruslan Ermilov <ru@nginx.com>
parents: 102
diff changeset
237 и <link doc="ngx_http_fastcgi_module.xml" id="fastcgi_next_upstream"/>.
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
238 Состояние <literal>http_404</literal>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
239 не считается неудачной попыткой.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
240 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
241
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
242 <tag-name><literal>fail_timeout</literal>=<value>время</value></tag-name>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
243 <tag-desc>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
244 задаёт
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
245 <list type="bullet">
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
246
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
247 <listitem>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
248 время, в течение которого должно произойти заданное число неудачных
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
249 попыток работы с сервером для того, чтобы сервер считался неработающим;
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
250 </listitem>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
251
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
252 <listitem>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
253 и время, в течение которого сервер будет считаться неработающим.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
254 </listitem>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
255
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
256 </list>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
257 По умолчанию таймаут равен 10 секундам.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
258 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
259
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
260 <tag-name><literal>backup</literal></tag-name>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
261 <tag-desc>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
262 помечает сервер как запасной сервер.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
263 На него будут передаваться запросы в случае, если не работают основные серверы.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
264 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
265
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
266 <tag-name><literal>down</literal></tag-name>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
267 <tag-desc>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
268 помечает сервер как постоянно неработающий; используется
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
269 совместно с директивой <link id="ip_hash"/>.
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
270 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
271
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
272 </list>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
273 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
274
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
275 <para>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
276 Пример:
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
277 <example>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
278 upstream backend {
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
279 server backend1.example.com weight=5;
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
280 server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
281 server unix:/tmp/backend3;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
282
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
283 server backup1.example.com:8080 backup;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
284 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
285 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
286 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
287
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
288 </directive>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
289
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
290
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
291 <directive name="upstream">
108
72524ae53106 Explicitly marked directives with the block syntax. Such directives will
Ruslan Ermilov <ru@nginx.com>
parents: 106
diff changeset
292 <syntax block="yes"><value>название</value></syntax>
99
1d315ef37215 The case <default/> is now language-agnostic.
Ruslan Ermilov <ru@nginx.com>
parents: 79
diff changeset
293 <default/>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
294 <context>http</context>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
295
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
296 <para>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
297 Описывает группу серверов.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
298 Серверы могут слушать на разных портах.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
299 Кроме того, можно одновременно использовать серверы,
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
300 слушающие на TCP- и UNIX-сокетах.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
301 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
302
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
303 <para>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
304 Пример:
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
305 <example>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
306 upstream backend {
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
307 server backend1.example.com weight=5;
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
308 server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
309 server unix:/tmp/backend3;
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
310 }
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
311 </example>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
312 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
313
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
314 <para>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
315 Запросы распределяются по серверам циклически (в режиме round-robin)
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
316 с учётом весов серверов.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
317 В вышеприведённом примере каждые 7 запросов будут распределены так:
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
318 5 запросов на <literal>backend1.example.com</literal>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
319 и по одному запросу на второй и третий серверы.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
320 Если при попытке работы с сервером произошла ошибка, то запрос будет
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
321 передан следующему серверу, и так до тех пор, пока не будут опробованы
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
322 все работающие серверы.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
323 Если не удастся получить успешный ответ
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
324 ни от одного из серверов, то клиенту будет возвращён результат работы
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
325 с последним сервером.
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
326 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
327
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
328 </directive>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
329
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
330 </section>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
331
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
332
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
333 <section id="variables" name="Встроенные переменные">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
334
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
335 <para>
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
336 Модуль <literal>ngx_http_upstream_module</literal>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
337 поддерживает следующие встроенные переменные:
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
338 <list type="tag">
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
339
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
340 <tag-name><var>$upstream_addr</var></tag-name>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
341 <tag-desc>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
342 хранит IP-адрес и порт сервера или путь к UNIX-сокету.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
343 Если при обработке запроса были сделаны обращения к нескольким серверам,
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
344 то их адреса разделяются запятой, например,
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
345 “<literal>192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock</literal>”.
256
c78b2d6fe261 Use another term for "redirect".
Ruslan Ermilov <ru@nginx.com>
parents: 222
diff changeset
346 Если произошло внутреннее перенаправление от одной группы серверов на другую
c78b2d6fe261 Use another term for "redirect".
Ruslan Ermilov <ru@nginx.com>
parents: 222
diff changeset
347 с помощью
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
348 <header>X-Accel-Redirect</header> или
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
349 <link doc="ngx_http_core_module.xml" id="error_page"/>,
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
350 то эти группы серверов разделяются двоеточием, например,
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
351 “<literal>192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock : 192.168.10.1:80, 192.168.10.2:80</literal>”.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
352 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
353
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
354 <tag-name><var>$upstream_response_time</var></tag-name>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
355 <tag-desc>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
356 хранит времена ответов серверов в секундах с точностью до миллисекунд.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
357 Несколько ответов также разделяются запятыми и двоеточиями.
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
358 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
359
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
360 <tag-name><var>$upstream_status</var></tag-name>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
361 <tag-desc>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
362 хранит коды ответов серверов.
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
363 Несколько ответов также разделяются запятыми и двоеточиями.
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
364 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
365
292
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
366 <tag-name><var>$upstream_http_...</var></tag-name>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
367 <tag-desc>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
368 хранят поля заголовка ответа сервера.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
369 Например, поле заголовка ответа <header>Server</header>
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
370 доступно в переменной <var>$upstream_http_server</var>.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
371 Необходимо иметь в виду, что запоминаются только поля заголовка ответа
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
372 последнего сервера.
7bc830cc79bb Revision.
Ruslan Ermilov <ru@nginx.com>
parents: 280
diff changeset
373 </tag-desc>
76
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
374
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
375 </list>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
376 </para>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
377
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
378 </section>
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
379
4a4caa566120 Russian documentation import.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
380 </module>