Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
nginx
GitHub Repository: nginx/nginx.org
Path: blob/main/xml/ru/docs/stream/ngx_stream_proxy_module.xml
1 views
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_proxy_module"
10
link="/ru/docs/stream/ngx_stream_proxy_module.html"
11
lang="ru"
12
rev="38">
13
14
<section id="summary">
15
16
<para>
17
Модуль <literal>ngx_stream_proxy_module</literal> (1.9.0) позволяет проксировать
18
потоки данных по TCP, UDP (1.9.13) и UNIX-сокетам.
19
</para>
20
21
</section>
22
23
24
<section id="example" name="Пример конфигурации">
25
26
<para>
27
<example>
28
server {
29
listen 127.0.0.1:12345;
30
proxy_pass 127.0.0.1:8080;
31
}
32
33
server {
34
listen 12345;
35
proxy_connect_timeout 1s;
36
proxy_timeout 1m;
37
proxy_pass example.com:12345;
38
}
39
40
server {
41
listen 53 udp reuseport;
42
proxy_timeout 20s;
43
proxy_pass dns.example.com:53;
44
}
45
46
server {
47
listen [::1]:12345;
48
proxy_pass unix:/tmp/stream.socket;
49
}
50
</example>
51
</para>
52
53
</section>
54
55
56
<section id="directives" name="Директивы">
57
58
<directive name="proxy_bind">
59
<syntax>
60
<value>address</value>
61
[<literal>transparent</literal>] |
62
<literal>off</literal></syntax>
63
<default/>
64
<context>stream</context>
65
<context>server</context>
66
<appeared-in>1.9.2</appeared-in>
67
68
<para>
69
Задаёт локальный IP-<value>адрес</value>, который будет использоваться в
70
исходящих соединениях с проксируемым сервером.
71
В значении параметра допустимо использование переменных (1.11.2).
72
Специальное значение <literal>off</literal> отменяет действие
73
унаследованной с предыдущего уровня конфигурации
74
директивы <literal>proxy_bind</literal>, позволяя системе
75
самостоятельно выбирать локальный IP-адрес.
76
</para>
77
78
<para id="proxy_bind_transparent">
79
Параметр <literal>transparent</literal> (1.11.0) позволяет
80
задать нелокальный IP-aдрес, который будет использоваться в
81
исходящих соединениях с проксируемым сервером,
82
например, реальный IP-адрес клиента:
83
<example>
84
proxy_bind $remote_addr transparent;
85
</example>
86
Для работы параметра
87
обычно требуется
88
запустить рабочие процессы nginx с привилегиями
89
<link doc="../ngx_core_module.xml" id="user">суперпользователя</link>.
90
В Linux этого не требуется (1.13.8), так как если
91
указан параметр <literal>transparent</literal>, то рабочие процессы
92
наследуют capability <literal>CAP_NET_RAW</literal> из главного процесса.
93
Также необходимо настроить таблицу маршрутизации ядра
94
для перехвата сетевого трафика с проксируемого сервера.
95
</para>
96
97
</directive>
98
99
100
<directive name="proxy_bind_dynamic">
101
<syntax><literal>on</literal> | <literal>off</literal></syntax>
102
<default>off</default>
103
<context>stream</context>
104
<context>server</context>
105
<appeared-in>1.29.3</appeared-in>
106
107
<para>
108
Если включено, операция <link id="proxy_bind">bind</link> осуществляется
109
при каждой попытке соединения.
110
</para>
111
112
<para>
113
<note>
114
Директива доступна как часть
115
<commercial_version>коммерческой подписки</commercial_version>.
116
</note>
117
</para>
118
119
</directive>
120
121
122
<directive name="proxy_buffer_size">
123
<syntax><value>размер</value></syntax>
124
<default>16k</default>
125
<context>stream</context>
126
<context>server</context>
127
<appeared-in>1.9.4</appeared-in>
128
129
<para>
130
Задаёт <value>размер</value> буфера, в который будут читаться данные,
131
получаемые от проксируемого сервера.
132
Также задаёт <value>размер</value> буфера, в который будут читаться данные,
133
получаемые от клиента.
134
</para>
135
136
</directive>
137
138
139
<directive name="proxy_connect_timeout">
140
<syntax><value>время</value></syntax>
141
<default>60s</default>
142
<context>stream</context>
143
<context>server</context>
144
145
<para>
146
Задаёт таймаут для установления соединения с проксированным сервером.
147
</para>
148
149
</directive>
150
151
152
<directive name="proxy_download_rate">
153
<syntax><value>скорость</value></syntax>
154
<default>0</default>
155
<context>stream</context>
156
<context>server</context>
157
<appeared-in>1.9.3</appeared-in>
158
159
<para>
160
Ограничивает скорость чтения данных от проксируемого сервера.
161
<value>Скорость</value> задаётся в байтах в секунду.
162
Значение 0 отключает ограничение скорости.
163
Ограничение устанавливается на соединение,
164
поэтому, если nginx одновременно
165
откроет два соединения к проксируемому серверу,
166
суммарная скорость будет вдвое выше заданного ограничения.
167
</para>
168
169
<para>
170
В значении параметра можно использовать переменные (1.17.0).
171
Это может быть полезно в случаях, когда скорость нужно ограничивать
172
в зависимости от какого-либо условия:
173
<example>
174
map $slow $rate {
175
1 4k;
176
2 8k;
177
}
178
179
proxy_download_rate $rate;
180
</example>
181
</para>
182
183
</directive>
184
185
186
<directive name="proxy_half_close">
187
<syntax><literal>on</literal> | <literal>off</literal></syntax>
188
<default>off</default>
189
<context>stream</context>
190
<context>server</context>
191
<appeared-in>1.21.4</appeared-in>
192
193
<para>
194
Разрешает или запрещает независимое закрытие
195
каждой из сторон проксируемого соединения TCP (“TCP half-close”).
196
Если разрешено, то проксирование по TCP будет продолжаться,
197
пока обе стороны не закроют соединение.
198
</para>
199
200
</directive>
201
202
203
<directive name="proxy_next_upstream">
204
<syntax><literal>on</literal> | <literal>off</literal></syntax>
205
<default>on</default>
206
<context>stream</context>
207
<context>server</context>
208
209
<para>
210
При невозможности установить соединение с проксируемым сервером определяет,
211
будет ли клиентское соединение передано следующему серверу.
212
</para>
213
214
<para>
215
Передача соединения следующему серверу может быть ограничена по
216
<link id="proxy_next_upstream_tries">количеству попыток</link>
217
и по <link id="proxy_next_upstream_timeout">времени</link>.
218
</para>
219
220
</directive>
221
222
223
<directive name="proxy_next_upstream_timeout">
224
<syntax><value>время</value></syntax>
225
<default>0</default>
226
<context>stream</context>
227
<context>server</context>
228
229
<para>
230
Ограничивает время, в течение которого возможна передача соединения
231
<link id="proxy_next_upstream">следующему серверу</link>.
232
Значение <literal>0</literal> отключает это ограничение.
233
</para>
234
235
</directive>
236
237
238
<directive name="proxy_next_upstream_tries">
239
<syntax><value>число</value></syntax>
240
<default>0</default>
241
<context>stream</context>
242
<context>server</context>
243
244
<para>
245
Ограничивает число допустимых попыток для передачи соединения
246
<link id="proxy_next_upstream">следующему серверу</link>.
247
Значение <literal>0</literal> отключает это ограничение.
248
</para>
249
250
</directive>
251
252
253
<directive name="proxy_pass">
254
<syntax><value>адрес</value></syntax>
255
<default/>
256
<context>server</context>
257
258
<para>
259
Задаёт адрес проксируемого сервера.
260
Адрес может быть указан в виде доменного имени или IP-адреса,
261
и порта:
262
<example>
263
proxy_pass localhost:12345;
264
</example>
265
или в виде пути UNIX-сокета:
266
<example>
267
proxy_pass unix:/tmp/stream.socket;
268
</example>
269
</para>
270
271
<para>
272
Если доменному имени соответствует несколько адресов, то все они будут
273
использоваться по очереди (round-robin).
274
Кроме того, в качестве адреса можно указать
275
<link doc="ngx_stream_upstream_module.xml">группу серверов</link>.
276
</para>
277
278
<para>
279
Адрес можно также задать с помощью переменных (1.11.3):
280
<example>
281
proxy_pass $upstream;
282
</example>
283
В этом случае имя сервера ищется среди описанных
284
<link doc="ngx_stream_upstream_module.xml">групп серверов</link>
285
и если не найдено, то определяется с помощью
286
<link doc="ngx_stream_core_module.xml" id="resolver"/>’а.
287
</para>
288
289
</directive>
290
291
292
<directive name="proxy_protocol">
293
<syntax><literal>on</literal> | <literal>off</literal></syntax>
294
<default>off</default>
295
<context>stream</context>
296
<context>server</context>
297
<appeared-in>1.9.2</appeared-in>
298
299
<para>
300
Включает
301
<link url="http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt">протокол
302
PROXY</link> для соединений с проксируемым сервером.
303
</para>
304
305
</directive>
306
307
308
<directive name="proxy_requests">
309
<syntax><value>число</value></syntax>
310
<default>0</default>
311
<context>stream</context>
312
<context>server</context>
313
<appeared-in>1.15.7</appeared-in>
314
315
<para>
316
Задаёт число датаграмм, полученных от клиента, по достижении которого
317
удаляется привязка между клиентом и существующей UDP-сессией.
318
После получения указанного количества датаграмм следующая датаграмма,
319
полученная от того же клиента, начинает новую сессию.
320
Cессия завершится после отправки всех принятых датаграмм
321
на проксируемый сервер и
322
получения указанного количества <link id="proxy_responses">ответов</link>
323
или после <link id="proxy_timeout">таймаута</link>.
324
</para>
325
326
</directive>
327
328
329
<directive name="proxy_responses">
330
<syntax><value>число</value></syntax>
331
<default/>
332
<context>stream</context>
333
<context>server</context>
334
<appeared-in>1.9.13</appeared-in>
335
336
<para>
337
Задаёт количество датаграмм, ожидаемых от проксируемого сервера
338
в ответ на датаграмму клиента
339
в случае, если используется протокол
340
<link doc="ngx_stream_core_module.xml" id="udp">UDP</link>.
341
Задаваемое число cлужит подсказкой для завершения сессии.
342
По умолчанию количество датаграмм не ограничено.
343
</para>
344
345
<para>
346
Если указано нулевое значение, то ответ не ожидается.
347
Однако если ответ получен и сессия ещё не завершилась, то ответ будет обработан.
348
</para>
349
350
</directive>
351
352
353
<directive name="proxy_session_drop">
354
<syntax><literal>on</literal> | <literal>off</literal></syntax>
355
<default>off</default>
356
<context>stream</context>
357
<context>server</context>
358
<appeared-in>1.15.8</appeared-in>
359
360
<para>
361
Позволяет завершить все сессии к проксируемому серверу,
362
если он был удалён из группы или помечен как постоянно недоступный.
363
Это может произойти вследствие повторного
364
<link doc="ngx_stream_core_module.xml" id="resolver">преобразования имён</link>
365
в адреса, а также при помощи команды API
366
<link doc="../http/ngx_http_api_module.xml" id="deleteStreamUpstreamServer"><literal>DELETE</literal></link>.
367
Сервер может быть помечен как постоянно недоступный в случае неуспешной
368
<link doc="ngx_stream_upstream_hc_module.xml" id="health_check">проверки работоспособности</link>,
369
а также при помощи команды API
370
<link doc="../http/ngx_http_api_module.xml" id="patchStreamUpstreamServer"><literal>PATCH</literal></link>.
371
Сессия завершается при обработке очередного
372
события чтения или записи на стороне клиента или проксируемого сервера.
373
</para>
374
375
<para>
376
<note>
377
Эта директива доступна как часть
378
<commercial_version>коммерческой подписки</commercial_version>.
379
</note>
380
</para>
381
382
</directive>
383
384
385
<directive name="proxy_socket_keepalive">
386
<syntax><literal>on</literal> | <literal>off</literal></syntax>
387
<default>off</default>
388
<context>stream</context>
389
<context>server</context>
390
<appeared-in>1.15.6</appeared-in>
391
392
<para>
393
Конфигурирует поведение “TCP keepalive”
394
для исходящих соединений к проксируемому серверу.
395
По умолчанию для сокета действуют настройки операционной системы.
396
Если указано значение “<literal>on</literal>”, то
397
для сокета включается параметр <c-def>SO_KEEPALIVE</c-def>.
398
</para>
399
400
</directive>
401
402
403
<directive name="proxy_ssl">
404
<syntax><literal>on</literal> | <literal>off</literal></syntax>
405
<default>off</default>
406
<context>stream</context>
407
<context>server</context>
408
409
<para>
410
Включает протоколы SSL/TLS для соединений с проксируемым сервером.
411
</para>
412
413
</directive>
414
415
416
<directive name="proxy_ssl_alpn">
417
<syntax><value>протокол</value> ...</syntax>
418
<default/>
419
<context>stream</context>
420
<context>server</context>
421
<appeared-in>1.31.0</appeared-in>
422
423
<para>
424
Задаёт список протоколов, которые передаются в расширении
425
<link url="https://datatracker.ietf.org/doc/html/rfc7301">ALPN</link>
426
при установлении соединения с проксируемым сервером.
427
Например:
428
<example>
429
proxy_ssl_alpn h2 http/1.1;
430
</example>
431
</para>
432
433
<para>
434
В значении параметра можно использовать переменные:
435
<example>
436
proxy_ssl_alpn $ssl_alpn_protocol;
437
</example>
438
</para>
439
440
</directive>
441
442
443
<directive name="proxy_ssl_certificate">
444
<syntax><value>файл</value></syntax>
445
<default/>
446
<context>stream</context>
447
<context>server</context>
448
449
<para>
450
Задаёт <value>файл</value> с сертификатом в формате PEM
451
для аутентификации на проксируемом сервере.
452
</para>
453
454
<para id="proxy_ssl_certificate_variables">
455
Начиная с версии 1.21.0 в имени файла можно использовать переменные.
456
</para>
457
458
</directive>
459
460
461
<directive name="proxy_ssl_certificate_cache">
462
<syntax><literal>off</literal></syntax>
463
<syntax>
464
<literal>max</literal>=<value>N</value>
465
[<literal>inactive</literal>=<value>время</value>]
466
[<literal>valid</literal>=<value>время</value>]</syntax>
467
<default>off</default>
468
<context>stream</context>
469
<context>server</context>
470
<appeared-in>1.27.4</appeared-in>
471
472
<para>
473
Задаёт кэш, в котором могут храниться
474
<link id="proxy_ssl_certificate">SSL-сертификаты</link> и
475
<link id="proxy_ssl_certificate_key">секретные ключи</link>,
476
полученные из <link id="proxy_ssl_certificate_key_variables">переменных</link>.
477
</para>
478
479
<para>
480
У директивы есть следующие параметры:
481
<list type="tag">
482
483
<tag-name id="proxy_ssl_certificate_cache_max">
484
<literal>max</literal>
485
</tag-name>
486
<tag-desc>
487
задаёт максимальное число элементов в кэше;
488
при переполнении кэша удаляются наименее востребованные элементы (LRU);
489
</tag-desc>
490
491
<tag-name id="proxy_ssl_certificate_cache_inactive">
492
<literal>inactive</literal>
493
</tag-name>
494
<tag-desc>
495
задаёт время, после которого элемент кэша удаляется,
496
если к нему не было обращений в течение этого времени;
497
по умолчанию 10 секунд;
498
</tag-desc>
499
500
<tag-name id="proxy_ssl_certificate_cache_valid">
501
<literal>valid</literal>
502
</tag-name>
503
<tag-desc>
504
задает время, в течение которого
505
элемент кэша считается действительным
506
и может быть повторно использован,
507
по умолчанию 60 секунд.
508
По завершении этого времени сертификат будет обновлён или повторно проверен;
509
</tag-desc>
510
511
<tag-name id="proxy_ssl_certificate_cache_off">
512
<literal>off</literal>
513
</tag-name>
514
<tag-desc>
515
запрещает кэш.
516
</tag-desc>
517
518
</list>
519
</para>
520
521
<para>
522
Пример:
523
<example>
524
proxy_ssl_certificate $proxy_ssl_server_name.crt;
525
proxy_ssl_certificate_key $proxy_ssl_server_name.key;
526
proxy_ssl_certificate_cache max=1000 inactive=20s valid=1m;
527
</example>
528
</para>
529
530
</directive>
531
532
533
<directive name="proxy_ssl_certificate_key">
534
<syntax><value>файл</value></syntax>
535
<default/>
536
<context>stream</context>
537
<context>server</context>
538
539
<para>
540
Задаёт <value>файл</value> с секретным ключом в формате PEM
541
для аутентификации на проксируемом сервере.
542
</para>
543
544
<para>
545
Вместо <value>файла</value> можно указать значение
546
<literal>store</literal>:<value>схема</value>:<value>id</value> (1.29.0),
547
которое используется для загрузки ключа с указанным <value>id</value>
548
и зарегистрированной провайдером OpenSSL <value>схемой</value> URI, такой как
549
<link url="https://datatracker.ietf.org/doc/html/rfc7512"><literal>pkcs11</literal></link>.
550
</para>
551
552
<para id="proxy_ssl_certificate_key_variables">
553
Начиная с версии 1.21.0 в имени файла можно использовать переменные.
554
</para>
555
556
</directive>
557
558
559
<directive name="proxy_ssl_ciphers">
560
<syntax><value>шифры</value></syntax>
561
<default>DEFAULT</default>
562
<context>stream</context>
563
<context>server</context>
564
565
<para>
566
Описывает разрешённые шифры для соединений с проксируемым сервером.
567
Шифры задаются в формате, поддерживаемом библиотекой OpenSSL.
568
</para>
569
570
<para>
571
Полный список можно посмотреть с помощью команды
572
<command>openssl ciphers</command>”.
573
</para>
574
575
</directive>
576
577
578
<directive name="proxy_ssl_conf_command">
579
<syntax><value>имя</value> <value>значение</value></syntax>
580
<default/>
581
<context>stream</context>
582
<context>server</context>
583
<appeared-in>1.19.4</appeared-in>
584
585
<para>
586
Задаёт произвольные конфигурационные
587
<link url="https://www.openssl.org/docs/man1.1.1/man3/SSL_CONF_cmd.html">команды</link>
588
OpenSSL
589
при установлении соединения с проксируемым сервером.
590
<note>
591
Директива поддерживается при использовании OpenSSL 1.0.2 и выше.
592
</note>
593
</para>
594
595
<para>
596
На одном уровне может быть указано
597
несколько директив <literal>proxy_ssl_conf_command</literal>.
598
Директивы наследуются с предыдущего уровня конфигурации при условии, что
599
на данном уровне не описаны
600
свои директивы <literal>proxy_ssl_conf_command</literal>.
601
</para>
602
603
<para>
604
<note>
605
Следует учитывать, что изменение настроек OpenSSL напрямую
606
может привести к неожиданному поведению.
607
</note>
608
</para>
609
610
</directive>
611
612
613
<directive name="proxy_ssl_crl">
614
<syntax><value>файл</value></syntax>
615
<default/>
616
<context>stream</context>
617
<context>server</context>
618
619
<para>
620
Указывает <value>файл</value> с отозванными сертификатами (CRL)
621
в формате PEM, используемыми при <link id="proxy_ssl_verify">проверке</link>
622
сертификата проксируемого сервера.
623
Если используются промежуточные сертификаты,
624
их списки CRL должны находиться в этом же файле.
625
</para>
626
627
</directive>
628
629
630
<directive name="proxy_ssl_key_log">
631
<syntax>путь</syntax>
632
<default/>
633
<context>stream</context>
634
<context>server</context>
635
<appeared-in>1.27.2</appeared-in>
636
637
<para>
638
Включает логирование SSL-ключей соединений с проксируемым сервером
639
и указывает путь к лог-файлу ключей.
640
Ключи записываются в формате
641
<link url="https://datatracker.ietf.org/doc/html/draft-ietf-tls-keylogfile">SSLKEYLOGFILE</link>
642
совместимом с Wireshark.
643
</para>
644
645
<para>
646
<note>
647
Директива доступна как часть
648
<commercial_version>коммерческой подписки</commercial_version>.
649
</note>
650
</para>
651
652
</directive>
653
654
655
<directive name="proxy_ssl_name">
656
<syntax><value>имя</value></syntax>
657
<default>хост из proxy_pass</default>
658
<context>stream</context>
659
<context>server</context>
660
661
<para>
662
Позволяет переопределить имя сервера, используемое при
663
<link id="proxy_ssl_verify">проверке</link>
664
сертификата проксируемого сервера, а также для
665
<link id="proxy_ssl_server_name">передачи его через SNI</link>
666
при установлении соединения с проксируемым сервером.
667
Имя сервера можно также задать с помощью переменных (1.11.3).
668
</para>
669
670
<para>
671
По умолчанию используется имя хоста из адреса, заданного
672
директивой <link id="proxy_pass"/>.
673
</para>
674
675
</directive>
676
677
678
<directive name="proxy_ssl_password_file">
679
<syntax><value>файл</value></syntax>
680
<default/>
681
<context>stream</context>
682
<context>server</context>
683
684
<para>
685
Задаёт <value>файл</value> с паролями от
686
<link id="proxy_ssl_certificate_key">секретных ключей</link>,
687
где каждый пароль указан на отдельной строке.
688
Пароли применяются по очереди в момент загрузки ключа.
689
</para>
690
691
</directive>
692
693
694
<directive name="proxy_ssl_protocols">
695
<syntax>
696
[<literal>SSLv2</literal>]
697
[<literal>SSLv3</literal>]
698
[<literal>TLSv1</literal>]
699
[<literal>TLSv1.1</literal>]
700
[<literal>TLSv1.2</literal>]
701
[<literal>TLSv1.3</literal>]</syntax>
702
<default>TLSv1.2 TLSv1.3</default>
703
<context>stream</context>
704
<context>server</context>
705
706
<para>
707
Разрешает указанные протоколы для соединений с проксируемым сервером.
708
</para>
709
710
<para>
711
<note>
712
Параметр <literal>TLSv1.3</literal> используется по умолчанию
713
начиная с 1.23.4.
714
</note>
715
</para>
716
717
</directive>
718
719
720
<directive name="proxy_ssl_server_name">
721
<syntax><literal>on</literal> | <literal>off</literal></syntax>
722
<default>off</default>
723
<context>stream</context>
724
<context>server</context>
725
726
<para>
727
Разрешает или запрещает передачу имени сервера через
728
<link url="http://en.wikipedia.org/wiki/Server_Name_Indication">расширение
729
Server Name Indication протокола TLS</link> (SNI, RFC 6066)
730
при установлении соединения с проксируемым сервером.
731
</para>
732
733
</directive>
734
735
736
<directive name="proxy_ssl_session_reuse">
737
<syntax><literal>on</literal> | <literal>off</literal></syntax>
738
<default>on</default>
739
<context>stream</context>
740
<context>server</context>
741
742
<para>
743
Определяет, использовать ли повторно SSL-сессии при
744
работе с проксируемым сервером.
745
Если в логах появляются ошибки
746
<literal>digest check failed</literal>”,
747
то можно попробовать выключить
748
повторное использование сессий.
749
</para>
750
751
</directive>
752
753
754
<directive name="proxy_ssl_trusted_certificate">
755
<syntax><value>файл</value></syntax>
756
<default/>
757
<context>stream</context>
758
<context>server</context>
759
760
<para>
761
Задаёт <value>файл</value> с доверенными сертификатами CA в формате PEM,
762
используемыми при <link id="proxy_ssl_verify">проверке</link>
763
сертификата проксируемого сервера.
764
</para>
765
766
</directive>
767
768
769
<directive name="proxy_ssl_verify">
770
<syntax><literal>on</literal> | <literal>off</literal></syntax>
771
<default>off</default>
772
<context>stream</context>
773
<context>server</context>
774
775
<para>
776
Разрешает или запрещает проверку сертификата проксируемого сервера.
777
</para>
778
779
</directive>
780
781
782
<directive name="proxy_ssl_verify_depth">
783
<syntax><value>число</value></syntax>
784
<default>1</default>
785
<context>stream</context>
786
<context>server</context>
787
788
<para>
789
Устанавливает глубину проверки в цепочке сертификатов проксируемого сервера.
790
</para>
791
792
</directive>
793
794
795
<directive name="proxy_timeout">
796
<syntax><value>время</value></syntax>
797
<default>10m</default>
798
<context>stream</context>
799
<context>server</context>
800
801
<para>
802
Задаёт <value>таймаут</value> между двумя идущими подряд
803
операциями чтения или записи
804
на клиентском соединении или соединении с проксируемым сервером.
805
Если по истечении этого времени данные не передавались,
806
соединение закрывается.
807
</para>
808
809
</directive>
810
811
812
<directive name="proxy_upload_rate">
813
<syntax><value>скорость</value></syntax>
814
<default>0</default>
815
<context>stream</context>
816
<context>server</context>
817
<appeared-in>1.9.3</appeared-in>
818
819
<para>
820
Ограничивает скорость чтения данных от клиента.
821
<value>Скорость</value> задаётся в байтах в секунду.
822
Значение 0 отключает ограничение скорости.
823
Ограничение устанавливается на соединение,
824
поэтому, если клиент одновременно
825
откроет два соединения,
826
суммарная скорость будет вдвое выше заданного ограничения.
827
</para>
828
829
<para>
830
В значении параметра можно использовать переменные (1.17.0).
831
Это может быть полезно в случаях, когда скорость нужно ограничивать
832
в зависимости от какого-либо условия:
833
<example>
834
map $slow $rate {
835
1 4k;
836
2 8k;
837
}
838
839
proxy_upload_rate $rate;
840
</example>
841
</para>
842
843
</directive>
844
845
</section>
846
847
</module>
848
849