comparison xml/ru/docs/stream/ngx_stream_core_module.xml @ 1529:bcffd2161de7

Translated the stream core module into Russian.
author Yaroslav Zhuravlev <yar@nginx.com>
date Thu, 02 Jul 2015 14:23:39 +0300
parents xml/en/docs/stream/ngx_stream_core_module.xml@3ae5301ea37a
children 8ea1813272bb
comparison
equal deleted inserted replaced
1528:3ae5301ea37a 1529:bcffd2161de7
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_core_module"
10 link="/ru/docs/stream/ngx_stream_core_module.html"
11 lang="ru"
12 rev="9">
13
14 <section id="summary">
15
16 <para>
17 Модуль <literal>ngx_stream_core_module</literal>
18 доступен начиная с версии 1.9.0.
19 По умолчанию этот модуль не собирается, его сборку необходимо
20 разрешить с помощью конфигурационного параметра
21 <literal>--with-stream</literal>.
22 </para>
23
24 </section>
25
26
27 <section id="example" name="Пример конфигурации">
28
29 <para>
30 <example>
31 worker_processes auto;
32
33 error_log /var/log/nginx/error.log info;
34
35 events {
36 worker_connections 1024;
37 }
38
39 stream {
40 upstream backend {
41 hash $remote_addr consistent;
42
43 server backend1.example.com:12345 weight=5;
44 server 127.0.0.1:12345 max_fails=3 fail_timeout=30s;
45 server unix:/tmp/backend3;
46 }
47
48 server {
49 listen 12345;
50 proxy_connect_timeout 1s;
51 proxy_timeout 3s;
52 proxy_pass backend;
53 }
54
55 server {
56 listen [::1]:12345;
57 proxy_pass unix:/tmp/stream.socket;
58 }
59 }
60 </example>
61 </para>
62
63 </section>
64
65
66 <section id="directives" name="Директивы">
67
68 <directive name="listen">
69 <syntax>
70 <value>адрес</value>:<value>порт</value>
71 [<literal>ssl</literal>]
72 [<literal>backlog</literal>=<value>число</value>]
73 [<literal>bind</literal>]
74 [<literal>ipv6only</literal>=<literal>on</literal>|<literal>off</literal>]
75 [<literal>reuseport</literal>]
76 [<literal>so_keepalive</literal>=<literal>on</literal>|<literal>off</literal>|[<value>keepidle</value>]:[<value>keepintvl</value>]:[<value>keepcnt</value>]]</syntax>
77 <default/>
78 <context>server</context>
79
80 <para>
81 Задаёт <value>адрес</value> и <value>порт</value> для сокета,
82 на котором сервер будет принимать соединения.
83 Можно указать только порт.
84 Кроме того, адрес может быть именем хоста, например:
85 <example>
86 listen 127.0.0.1:12345;
87 listen *:12345;
88 listen 12345; # то же, что и *:12345
89 listen localhost:12345;
90 </example>
91 IPv6-адреса задаются в квадратных скобках:
92 <example>
93 listen [::1]:12345;
94 listen [::]:12345;
95 </example>
96 UNIX-сокеты задаются префиксом “<literal>unix:</literal>”
97 <example>
98 listen unix:/var/run/nginx.sock;
99 </example>
100
101 </para>
102
103 <para>
104 Параметр <literal>ssl</literal> указывает на то, что все соединения,
105 принимаемые на данном порту, должны работать в режиме SSL.
106 </para>
107
108 <para>
109 В директиве <literal>listen</literal> можно также указать несколько
110 дополнительных параметров, специфичных для связанных с сокетами
111 системных вызовов.
112 <list type="tag">
113
114 <tag-name>
115 <literal>backlog</literal>=<value>число</value>
116 </tag-name>
117 <tag-desc>
118 задаёт параметр <literal>backlog</literal> в вызове
119 <c-func>listen</c-func>, который ограничивает
120 максимальный размер очереди ожидающих приёма соединений (1.9.2).
121 По умолчанию <literal>backlog</literal> устанавливается равным -1 для
122 FreeBSD, DragonFly BSD и Mac OS X,
123 и 511 для других платформ.
124 </tag-desc>
125
126 <tag-name>
127 <literal>bind</literal>
128 </tag-name>
129 <tag-desc>
130 параметр указывает, что для данной пары
131 <value>адрес</value>:<value>порт</value> нужно делать
132 <c-func>bind</c-func> отдельно.
133 Это нужно потому, что если описаны несколько директив <literal>listen</literal>
134 с одинаковым портом, но разными адресами, и одна из директив
135 <literal>listen</literal> слушает на всех адресах для данного порта
136 (<literal>*:</literal><value>порт</value>), то nginx сделает
137 <c-func>bind</c-func> только на <literal>*:</literal><value>порт</value>.
138 Необходимо заметить, что в этом случае для определения адреса, на которой
139 пришло соединение, делается системный вызов <c-func>getsockname</c-func>.
140 Если же используются параметры <literal>ipv6only</literal>
141 или <literal>so_keepalive</literal>,
142 то для данной пары
143 <value>адрес</value>:<value>порт</value> всегда делается
144 отдельный вызов <c-func>bind</c-func>.
145 </tag-desc>
146
147 <tag-name>
148 <literal>ipv6only</literal>=<literal>on</literal>|<literal>off</literal>
149 </tag-name>
150 <tag-desc>
151 этот параметр определяет
152 (через параметр сокета <c-def>IPV6_V6ONLY</c-def>),
153 будет ли слушающий на wildcard-адресе <literal>[::]</literal> IPv6-сокет
154 принимать только IPv6-соединения, или же одновременно IPv6- и IPv4-соединения.
155 По умолчанию параметр включён.
156 Установить его можно только один раз на старте.
157 </tag-desc>
158
159 <tag-name id="reuseport">
160 <literal>reuseport</literal>
161 </tag-name>
162 <tag-desc>
163 этот параметр (1.9.1) указывает, что нужно создавать отдельный слушающий сокет
164 для каждого рабочего процесса
165 (через параметр сокета <c-def>SO_REUSEPORT</c-def>), позволяя ядру
166 распределять входящие соединения между рабочими процессами.
167 В настоящий момент это работает только на Linux 3.9+ и DragonFly BSD.
168 <note>
169 Ненадлежащее использование параметра может иметь
170 <link url="http://man7.org/linux/man-pages/man7/socket.7.html">последствия</link>
171 в плане безопасности.
172 </note>
173 </tag-desc>
174
175 <tag-name>
176 <literal>so_keepalive</literal>=<literal>on</literal>|<literal>off</literal>|[<value>keepidle</value>]:[<value>keepintvl</value>]:[<value>keepcnt</value>]
177 </tag-name>
178 <tag-desc>
179 этот параметр конфигурирует для слушающего сокета
180 поведение “TCP keepalive”.
181 Если этот параметр опущен, то для сокета будут действовать
182 настройки операционной системы.
183 Если он установлен в значение “<literal>on</literal>”, то для сокета
184 включается параметр <c-def>SO_KEEPALIVE</c-def>.
185 Если он установлен в значение “<literal>off</literal>”, то для сокета
186 параметр <c-def>SO_KEEPALIVE</c-def> выключается.
187 Некоторые операционные системы поддерживают настройку параметров
188 “TCP keepalive” на уровне сокета посредством параметров
189 <c-def>TCP_KEEPIDLE</c-def>, <c-def>TCP_KEEPINTVL</c-def> и
190 <c-def>TCP_KEEPCNT</c-def>.
191 На таких системах (в настоящий момент это Linux 2.4+, NetBSD 5+ и
192 FreeBSD 9.0-STABLE)
193 их можно сконфигурировать с помощью параметров <value>keepidle</value>,
194 <value>keepintvl</value> и <value>keepcnt</value>.
195 Один или два параметра могут быть опущены, в таком случае для
196 соответствующего параметра сокета будут действовать стандартные
197 системные настройки.
198 Например,
199 <example>so_keepalive=30m::10</example>
200 установит таймаут бездействия (<c-def>TCP_KEEPIDLE</c-def>) в 30 минут,
201 для интервала проб (<c-def>TCP_KEEPINTVL</c-def>) будет действовать
202 стандартная системная настройка, а счётчик проб (<c-def>TCP_KEEPCNT</c-def>)
203 будет равен 10.
204 </tag-desc>
205
206 </list>
207 </para>
208
209 <para>
210 Разные серверы должны слушать на разных парах
211 <value>адрес</value>:<value>порт</value>.
212 </para>
213
214 </directive>
215
216
217 <directive name="resolver">
218 <syntax>
219 <value>адрес</value> ...
220 [<literal>valid</literal>=<value>время</value>]
221 [<literal>ipv6</literal>=<literal>on</literal>|<literal>off</literal>]</syntax>
222 <default/>
223 <context>stream</context>
224 <context>server</context>
225
226 <para>
227 Задаёт серверы DNS, используемые для преобразования имён вышестоящих серверов
228 в адреса, например:
229 <example>
230 resolver 127.0.0.1 [::1]:5353;
231 </example>
232 Адрес может быть указан в виде доменного имени или IP-адреса,
233 и необязательного порта.
234 Если порт не указан, используется порт 53.
235 Серверы DNS опрашиваются циклически.
236 </para>
237
238 <para>
239 По умолчанию nginx будет искать как IPv4-, так и IPv6-адреса
240 при преобразовании имён в адреса.
241 Если поиск IPv6-адресов нежелателен,
242 можно указать параметр <literal>ipv6=off</literal>.
243 </para>
244
245 <para>
246 По умолчанию nginx кэширует ответы, используя значение TTL из ответа.
247 Необязательный параметр <literal>valid</literal> позволяет это
248 переопределить:
249 <example>
250 resolver 127.0.0.1 [::1]:5353 valid=30s;
251 </example>
252 <note>
253 Эта директива доступна как часть
254 <commercial_version>коммерческой подписки</commercial_version>.
255 </note>
256 </para>
257
258 </directive>
259
260
261 <directive name="resolver_timeout">
262 <syntax><value>время</value></syntax>
263 <default>30s</default>
264 <context>stream</context>
265 <context>server</context>
266
267 <para>
268 Задаёт таймаут для преобразования имени в адрес, например:
269 <example>
270 resolver_timeout 5s;
271 </example>
272 <note>
273 Эта директива доступна как часть
274 <commercial_version>коммерческой подписки</commercial_version>.
275 </note>
276 </para>
277
278 </directive>
279
280
281 <directive name="server">
282 <syntax block="yes"/>
283 <default/>
284 <context>stream</context>
285
286 <para>
287 Задаёт конфигурацию для сервера.
288 </para>
289
290 </directive>
291
292
293 <directive name="stream">
294 <syntax block="yes"/>
295 <default/>
296 <context>main</context>
297
298 <para>
299 Предоставляет контекст конфигурационного файла, в котором указываются
300 директивы stream-сервера.
301 </para>
302
303 </directive>
304
305 </section>
306
307 </module>