Mercurial > hg > nginx-site
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> |