diff --git a/xml/en/docs/http/ngx_http_tunnel_module.xml b/xml/en/docs/http/ngx_http_tunnel_module.xml
index e0ae1fa5..f505118f 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;
deniedthe server denied
-the connection;
+the connection;
+
+
+This parameter is available as part of our
+commercial subscription.
+
+
+
offdisables passing a request to the next server.
diff --git a/xml/ru/GNUmakefile b/xml/ru/GNUmakefile
index 6c0b0d4b..6a6b194e 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 00000000..af70002b
--- /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 ebd68e6b..02aea081 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