From 41f6a40c417c81fb2535b0cda7c14506f0d81986 Mon Sep 17 00:00:00 2001 From: Sergey Kandaurov Date: Fri, 8 May 2026 21:02:38 +0400 Subject: [PATCH 1/2] Documented the OSS ngx_http_tunnel_module --- xml/en/docs/http/ngx_http_tunnel_module.xml | 37 ++++++++++++++------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/xml/en/docs/http/ngx_http_tunnel_module.xml b/xml/en/docs/http/ngx_http_tunnel_module.xml index e0ae1fa53..f505118f3 100644 --- a/xml/en/docs/http/ngx_http_tunnel_module.xml +++ b/xml/en/docs/http/ngx_http_tunnel_module.xml @@ -14,17 +14,9 @@
-The ngx_http_tunnel_module (1.29.3) handles -CONNECT -requests -and establishes an end-to-end virtual connection. - - - - -This module is available as part of our -commercial subscription. - +The ngx_http_tunnel_module (1.31.0) handles HTTP/1.1 +CONNECT +requests and establishes an end-to-end virtual connection.
@@ -101,6 +93,13 @@ server { + + +This directive is available as part of our +commercial subscription. + + + @@ -148,6 +147,13 @@ tunnel_bind_dynamic on; + + +This directive is available as part of our +commercial subscription. + + + @@ -209,7 +215,14 @@ server, passing a request to it, or reading data from the server; denied the server denied -the connection; +the connection; + + +This parameter is available as part of our +commercial subscription. + + + off disables passing a request to the next server. From 360a43bd4509b3d59f662b781ae5373d88e037f9 Mon Sep 17 00:00:00 2001 From: Sergey Kandaurov Date: Fri, 8 May 2026 21:03:34 +0400 Subject: [PATCH 2/2] Translated the ngx_http_tunnel_module into Russian --- xml/ru/GNUmakefile | 1 + xml/ru/docs/http/ngx_http_tunnel_module.xml | 413 ++++++++++++++++++++ xml/ru/docs/index.xml | 2 +- 3 files changed, 415 insertions(+), 1 deletion(-) create mode 100644 xml/ru/docs/http/ngx_http_tunnel_module.xml diff --git a/xml/ru/GNUmakefile b/xml/ru/GNUmakefile index 6c0b0d4bf..6a6b194e2 100644 --- a/xml/ru/GNUmakefile +++ b/xml/ru/GNUmakefile @@ -78,6 +78,7 @@ REFS = \ http/ngx_http_status_module \ http/ngx_http_stub_status_module \ http/ngx_http_sub_module \ + http/ngx_http_tunnel_module \ http/ngx_http_upstream_module \ http/ngx_http_upstream_conf_module \ http/ngx_http_upstream_hc_module \ diff --git a/xml/ru/docs/http/ngx_http_tunnel_module.xml b/xml/ru/docs/http/ngx_http_tunnel_module.xml new file mode 100644 index 000000000..af70002b2 --- /dev/null +++ b/xml/ru/docs/http/ngx_http_tunnel_module.xml @@ -0,0 +1,413 @@ + + + + + + + + +
+ + +Модуль ngx_http_tunnel_module (1.31.0) выполняет +обработку запросов HTTP/1.1 +CONNECT +для установки сквозного виртуального соединения с другим сервером. + + +
+ + +
+ + + +http { + + map $request_port $allow_port { + 443 1; + } + + map $host $allow_host { + hostnames; + + example.org 1; + *.example.org 1; + } + + server { + listen 8000; + + resolver dns.example.com; + + if ($allow_port != 1) { + return 502; + } + + if ($allow_host != 1) { + return 502; + } + + tunnel_pass; + } +} + + + +
+ + +
+ + +строка ... + +http +server +location + + +Задаёт условия, при которых доступ к проксируемому серверу +будет разрешён или запрещён. +Если все значения строковых параметров непустые +и не равны “0”, то доступ разрешён. +Условия проверяются каждый раз +перед установлением соединения с проксируемым сервером. +В значении параметров допустимо использование переменных: + +geo $upstream_last_addr $allow { + volatile; + 10.10.0.0/24 1; +} + +server { + listen 127.0.0.1:8080; + + tunnel_pass; + tunnel_allow_upstream $allow; +} + + + + + +Директива доступна как часть +коммерческой подписки. + + + + + + + + + адрес | + off + +http +server +location + + +Задаёт локальный IP-адрес с необязательным портом, +который будет использоваться в исходящих соединениях с проксируемым сервером. +В значении параметра допустимо использование переменных. +Специальное значение off отменяет действие +унаследованной с предыдущего уровня конфигурации +директивы tunnel_bind, позволяя системе +самостоятельно выбирать локальный IP-адрес и порт. + + + + + + +on | off +off +http +server +location + + +Если включено, операция bind осуществляется +при каждой попытке соединения. + +geo $upstream_last_addr $bind_addr { + volatile; + 10.0.0.0/24 10.0.0.1; + 192.168.0.0/24 192.168.0.1; +} + +tunnel_bind $bind_addr; +tunnel_bind_dynamic on; + + + + + +Директива доступна как часть +коммерческой подписки. + + + + + + + +размер +4k|8k +http +server +location + + +Задаёт размер буфера, в который будут читаться данные, +получаемые от проксируемого сервера. +Также задаёт размер буфера, в который будут читаться данные, +получаемые от клиента. + + + + + + +время +60s +http +server +location + + +Задаёт таймаут для установления соединения с проксированным сервером. +Необходимо иметь в виду, что этот таймаут обычно не может превышать 75 секунд. + + + + + + + + error | + timeout | + denied | + off + ... +error timeout +http +server +location + + +Определяет, в каких случаях запрос будет передан следующему серверу: + + +error +произошла ошибка соединения с сервером или +чтения данных от сервера; + +timeout +произошёл таймаут во время соединения с сервером, +передачи ему запроса или чтения заголовка ответа сервера; + +denied +сервер отклонил +соединение; + + +Параметр доступен как часть +коммерческой подписки. + + + + +off +запрещает передачу запроса следующему серверу. + + + + + +Необходимо понимать, что передача запроса следующему серверу возможна +только при условии, что клиенту ещё ничего не передавалось. +То есть, если ошибка или таймаут возникли в середине передачи ответа +клиенту, то исправить это уже невозможно. + + + +Директива также определяет, что считается +неудачной +попыткой работы с сервером. +Случаи error, timeout и +denied +всегда считаются неудачными попытками, даже если они не указаны в директиве. + + + +Передача запроса следующему серверу может быть ограничена по +количеству попыток +и по времени. + + + + + + +время +0 +http +server +location + + +Ограничивает время, в течение которого возможна передача запроса +следующему серверу. +Значение 0 отключает это ограничение. + + + + + + +число +0 +http +server +location + + +Ограничивает число допустимых попыток для передачи запроса +следующему серверу. +Значение 0 отключает это ограничение. + + + + + + +[адрес] + +server +location +if в location + + +Разрешает обработку запросов CONNECT и задаёт адрес проксируемого сервера. +По умолчанию в качестве адрес'а используется +$host:$request_port со значениями из запроса клиента. +В большинстве случаев указывать параметры для tunnel_pass +не требуется. + + + +Адрес может быть указан в виде доменного имени или IP-адреса, +и порта: + +tunnel_pass localhost:9000; + +или в виде пути UNIX-сокета: + +tunnel_pass unix:/tmp/backend.socket; + + + + +Если доменному имени соответствует несколько адресов, то все они будут +использоваться по очереди (round-robin). +Кроме того, в качестве адреса можно указать +группу серверов. + + + +В значении параметра можно использовать переменные. +В этом случае, если адрес указан в виде доменного имени, +имя ищется среди описанных групп серверов +и если не найдено, то определяется с помощью +’а. + + + + + + +время +60s +http +server +location + + +Задаёт таймаут между двумя идущими подряд операциями чтения или записи +на клиентском соединении или соединении с проксируемым сервером. +Если по истечении этого времени данные не передавались, +соединение закрывается. + + + + + + +размер +0 +http +server +location + + +При установке директивы в ненулевое значение nginx будет пытаться минимизировать +число операций отправки на исходящих соединениях с проксируемым сервером либо +при помощи флага NOTE_LOWAT метода +, +либо при помощи параметра сокета SO_SNDLOWAT, +с указанным размером. + + + +Эта директива игнорируется на Linux, Solaris и Windows. + + + + + + +время +60s +http +server +location + + +Задаёт таймаут при передаче запроса проксированному серверу. +Таймаут устанавливается не на всю передачу запроса, +а только между двумя операциями записи. +Если по истечении этого времени проксируемый сервер не примет новых данных, +соединение закрывается. + + + + + + +on | off +off +http +server +location + + +Конфигурирует поведение “TCP keepalive” +для исходящих соединений к проксируемому серверу. +По умолчанию для сокета действуют настройки операционной системы. +Если указано значение “on”, то +для сокета включается параметр SO_KEEPALIVE. + + + + +
+ +
diff --git a/xml/ru/docs/index.xml b/xml/ru/docs/index.xml index ebd68e6b8..02aea0815 100644 --- a/xml/ru/docs/index.xml +++ b/xml/ru/docs/index.xml @@ -485,7 +485,7 @@ ngx_http_sub_module -ngx_http_tunnel_module [en] +ngx_http_tunnel_module