<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi,<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 19 Oct 2022, at 13:01, Yaroslav Zhuravlev <<a href="mailto:yar@nginx.com" class="">yar@nginx.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""> xml/en/docs/http/ngx_http_core_module.xml     |  107 +++++++++++++++++++++++++-<br class=""> xml/en/docs/stream/ngx_stream_core_module.xml |  105 +++++++++++++++++++++++++-<br class=""> xml/ru/docs/http/ngx_http_core_module.xml     |  106 +++++++++++++++++++++++++-<br class=""> xml/ru/docs/stream/ngx_stream_core_module.xml |  106 +++++++++++++++++++++++++-<br class=""> 4 files changed, 420 insertions(+), 4 deletions(-)<br class=""><br class=""><br class=""># HG changeset patch<br class=""># User Yaroslav Zhuravlev <<a href="mailto:yar@nginx.com" class="">yar@nginx.com</a>><br class=""># Date 1666118553 -3600<br class="">#      Tue Oct 18 19:42:33 2022 +0100<br class=""># Node ID 881627fb56bfff009297b6cc15cd1f5d58ebc030<br class=""># Parent  3f5e91af4a52c5b8bbc75c0ea31e3ceac0bebea8<br class="">Documented the $proxy_protocol_tlv_ variable.<br class=""><br class="">diff --git a/xml/en/docs/http/ngx_http_core_module.xml b/xml/en/docs/http/ngx_http_core_module.xml<br class="">--- a/xml/en/docs/http/ngx_http_core_module.xml<br class="">+++ b/xml/en/docs/http/ngx_http_core_module.xml<br class="">@@ -10,7 +10,7 @@<br class=""> <module name="Module ngx_http_core_module"<br class="">         link="/en/docs/http/ngx_http_core_module.html"<br class="">         lang="en"<br class="">-        rev="100"><br class="">+        rev="101"><br class=""><br class=""> <section id="directives" name="Directives"><br class=""><br class="">@@ -3228,6 +3228,111 @@<br class=""> </para><br class=""> </tag-desc><br class=""><br class="">+<tag-name id="var_proxy_protocol_tlv_"><var>$proxy_protocol_tlv_</var><value>name</value></tag-name><br class="">+<tag-desc><br class="">+TLV from the PROXY Protocol header (1.23.2).<br class="">+The <literal>name</literal> can be a TLV type name or its numeric value.<br class="">+In the latter case, the value is hexadecimal<br class="">+and should be prefixed with <literal>0x</literal>:<br class="">+<br class="">+<example><br class="">+$proxy_protocol_tlv_alpn<br class="">+$proxy_protocol_tlv_0x01<br class="">+</example><br class="">+SSL TLVs can also be accessed by TLV type name<br class="">+or its numeric value,<br class="">+both prefixed by <literal>ssl_</literal>:<br class="">+<example><br class="">+$proxy_protocol_tlv_ssl_version<br class="">+$proxy_protocol_tlv_ssl_0x22<br class="">+</example><br class="">+<br class="">+<para><br class="">+The following TLV type names are supported:<br class="">+<list type="bullet"><br class="">+<br class="">+<listitem><br class="">+<literal>alpn</literal> (<literal>0x01</literal>)&mdash;<br class="">+upper layer protocol used over the connection<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>authority</literal> (<literal>0x02</literal>)&mdash;<br class="">+host name value passed by the client<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>unique_id</literal> (<literal>0x05</literal>)&mdash;<br class="">+unique connection id<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>netns</literal> (<literal>0x30</literal>)&mdash;<br class="">+name of the namespace<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl</literal> (<literal>0x20</literal>)&mdash;<br class="">+client SSL fields as binary<br class="">+</listitem><br class="">+<br class="">+</list><br class="">+</para><br class="">+<br class="">+<para><br class="">+The following SSL TLV type names are supported:<br class="">+<list type="bullet"><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_version</literal> (<literal>0x21</literal>)&mdash;<br class="">+SSL version used in client connection<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_cn</literal> (<literal>0x22</literal>)&mdash;<br class="">+SSL certificate Common Name<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_cipher</literal> (<literal>0x23</literal>)&mdash;<br class="">+name of the used cipher<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_sig_alg</literal> (<literal>0x24</literal>)&mdash;<br class="">+algorithm used to sign the certificate<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_key_alg</literal> (<literal>0x25</literal>)&mdash;<br class="">+public-key algorithm<br class="">+</listitem><br class="">+<br class="">+</list><br class="">+</para><br class="">+<br class="">+<para><br class="">+Also, the following special SSL TLV type name is supported:<br class="">+<list type="bullet"><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_verify</literal>&mdash;<br class="">+client SSL certificate verification result,<br class="">+<literal>0</literal> if the client presented a certificate<br class="">+and it was successfully verified,<br class="">+non-zero otherwise.<br class="">+</listitem><br class="">+<br class="">+</list><br class="">+</para><br class="">+<br class="">+<para><br class="">+The PROXY protocol must be previously enabled by setting the<br class="">+<literal>proxy_protocol</literal> parameter<br class="">+in the <link id="listen"/> directive.<br class="">+</para><br class="">+</tag-desc><br class="">+<br class=""> <tag-name id="var_query_string"><var>$query_string</var></tag-name><br class=""> <tag-desc><br class=""> same as <var>$args</var><br class="">diff --git a/xml/en/docs/stream/ngx_stream_core_module.xml b/xml/en/docs/stream/ngx_stream_core_module.xml<br class="">--- a/xml/en/docs/stream/ngx_stream_core_module.xml<br class="">+++ b/xml/en/docs/stream/ngx_stream_core_module.xml<br class="">@@ -9,7 +9,7 @@<br class=""> <module name="Module ngx_stream_core_module"<br class="">         link="/en/docs/stream/ngx_stream_core_module.html"<br class="">         lang="en"<br class="">-        rev="35"><br class="">+        rev="36"><br class=""><br class=""> <section id="summary"><br class=""><br class="">@@ -587,6 +587,109 @@<br class=""> </para><br class=""> </tag-desc><br class=""><br class="">+<tag-name id="var_proxy_protocol_tlv_"><var>$proxy_protocol_tlv_</var><value>name</value></tag-name><br class="">+<tag-desc><br class="">+TLV from the PROXY Protocol header (1.23.2).<br class="">+The <literal>name</literal> can be a TLV type name or its numeric value.<br class="">+In the latter case, the value is hexadecimal<br class="">+and should be prefixed with <literal>0x</literal>:<br class="">+<br class="">+<example><br class="">+$proxy_protocol_tlv_alpn<br class="">+$proxy_protocol_tlv_0x01<br class="">+</example><br class="">+SSL TLVs can also be accessed by TLV type name or its numeric value,<br class="">+both prefixed by <literal>ssl_</literal>:<br class="">+<example><br class="">+$proxy_protocol_tlv_ssl_version<br class="">+$proxy_protocol_tlv_ssl_0x22<br class="">+</example><br class="">+<br class="">+<para><br class="">+The following TLV type names are supported:<br class="">+<list type="bullet"><br class="">+<br class="">+<listitem><br class="">+<literal>alpn</literal> (<literal>0x01</literal>)&mdash;<br class="">+upper layer protocol used over the connection<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>authority</literal> (<literal>0x02</literal>)&mdash;<br class="">+host name value passed by the client<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>unique_id</literal> (<literal>0x05</literal>)&mdash;<br class="">+unique connection id<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>netns</literal> (<literal>0x30</literal>)&mdash;<br class="">+name of the namespace<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl</literal> (<literal>0x20</literal>)&mdash;<br class="">+client SSL fields as binary<br class="">+</listitem><br class="">+<br class="">+</list><br class="">+</para><br class="">+<br class="">+<para><br class="">+The following SSL TLV type names are supported:<br class="">+<list type="bullet"><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_version</literal> (<literal>0x21</literal>)&mdash;<br class="">+SSL version used in client connection<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_cn</literal> (<literal>0x22</literal>)&mdash;<br class="">+SSL certificate Common Name<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_cipher</literal> (<literal>0x23</literal>)&mdash;<br class="">+name of the used cipher<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_sig_alg</literal> (<literal>0x24</literal>)&mdash;<br class="">+algorithm used to sign the certificate<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_key_alg</literal> (<literal>0x25</literal>)&mdash;<br class="">+public-key algorithm<br class="">+</listitem><br class="">+<br class="">+</list><br class="">+</para><br class="">+<br class="">+<para><br class="">+Also, the following special SSL TLV type name is supported:<br class="">+<list type="bullet"><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_verify</literal>&mdash;<br class="">+client SSL certificate verification result,<br class="">+zero if the client presented a certificate<br class="">+and it was successfully verified, and non-zero otherwise<br class="">+</listitem><br class="">+<br class="">+</list><br class="">+</para><br class="">+<br class="">+<para><br class="">+The PROXY protocol must be previously enabled by setting the<br class="">+<literal>proxy_protocol</literal> parameter<br class="">+in the <link id="listen"/> directive.<br class="">+</para><br class="">+</tag-desc><br class="">+<br class=""> <tag-name id="var_remote_addr"><var>$remote_addr</var></tag-name><br class=""> <tag-desc><br class=""> client address<br class="">diff --git a/xml/ru/docs/http/ngx_http_core_module.xml b/xml/ru/docs/http/ngx_http_core_module.xml<br class="">--- a/xml/ru/docs/http/ngx_http_core_module.xml<br class="">+++ b/xml/ru/docs/http/ngx_http_core_module.xml<br class="">@@ -10,7 +10,7 @@<br class=""> <module name="Модуль ngx_http_core_module"<br class="">         link="/ru/docs/http/ngx_http_core_module.html"<br class="">         lang="ru"<br class="">-        rev="100"><br class="">+        rev="101"><br class=""><br class=""> <section id="directives" name="Директивы"><br class=""><br class="">@@ -3221,6 +3221,110 @@<br class=""> </para><br class=""> </tag-desc><br class=""><br class="">+<tag-name id="var_proxy_protocol_tlv_"><var>$proxy_protocol_tlv_</var><value>имя</value></tag-name><br class="">+<tag-desc><br class="">+TLV, полученный из заголовка протокола PROXY (1.23.2).<br class="">+<literal>Имя</literal> может быть именем типа TLV или его числовым значением.<br class="">+В последнем случае значение задаётся в шестнадцатеричном виде<br class="">+и должно начинаться с <literal>0x</literal>:<br class="">+<br class="">+<example><br class="">+$proxy_protocol_tlv_alpn<br class="">+$proxy_protocol_tlv_0x01<br class="">+</example><br class="">+SSL TLV могут также быть доступны как по имени типа TLV,<br class="">+так и по его числовому значению,<br class="">+оба должны начинаться с <literal>ssl_</literal>:<br class="">+<example><br class="">+$proxy_protocol_tlv_ssl_version<br class="">+$proxy_protocol_tlv_ssl_0x22<br class="">+</example><br class="">+<br class="">+<para><br class="">+Поддерживаются следующие имена типов TLV:<br class="">+<list type="bullet"><br class="">+<br class="">+<listitem><br class="">+<literal>alpn</literal> (<literal>0x01</literal>)&mdash;<br class="">+протокол более высокого уровня, используемый поверх соединения<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>authority</literal> (<literal>0x02</literal>)&mdash;<br class="">+значение имени хоста, передаваемое клиентом<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>unique_id</literal> (<literal>0x05</literal>)&mdash;<br class="">+уникальный идентификатор соединения<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>netns</literal> (<literal>0x30</literal>)&mdash;<br class="">+имя пространства имён<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl</literal> (<literal>0x20</literal>)&mdash;<br class="">+клиентские SSL поля в бинарном виде<br class="">+</listitem><br class="">+<br class="">+</list><br class="">+</para><br class="">+<br class="">+<para><br class="">+Поддерживаются следующие имена типов SSL TLV:<br class="">+<list type="bullet"><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_version</literal> (<literal>0x21</literal>)&mdash;<br class="">+версия SSL, используемая в клиентском соединении<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_cn</literal> (<literal>0x22</literal>)&mdash;<br class="">+Common Name сертификата<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_cipher</literal> (<literal>0x23</literal>)&mdash;<br class="">+имя используемого шифра<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_sig_alg</literal> (<literal>0x24</literal>)&mdash;<br class="">+алгоритм, используемый для подписи сертификата<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_key_alg</literal> (<literal>0x25</literal>)&mdash;<br class="">+алгоритм публичного ключа<br class="">+</listitem><br class="">+<br class="">+</list><br class="">+</para><br class="">+<br class="">+<para><br class="">+Также поддерживается следующее специальное имя типа SSL TLV:<br class="">+<list type="bullet"><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_verify</literal>&mdash;<br class="">+результат проверки клиентского сертификата:<br class="">+<literal>0</literal>, если клиент предоставил сертификат<br class="">+и он был успешно верифицирован,<br class="">+либо ненулевое значение<br class="">+</listitem><br class="">+<br class="">+</list><br class="">+</para><br class="">+<br class="">+<para><br class="">+Протокол PROXY должен быть предварительно включён при помощи установки<br class="">+параметра <literal>proxy_protocol</literal> в директиве <link id="listen"/>.<br class="">+</para><br class="">+</tag-desc><br class="">+<br class=""> <tag-name id="var_query_string"><var>$query_string</var></tag-name><br class=""> <tag-desc><br class=""> то же, что и <var>$args</var><br class="">diff --git a/xml/ru/docs/stream/ngx_stream_core_module.xml b/xml/ru/docs/stream/ngx_stream_core_module.xml<br class="">--- a/xml/ru/docs/stream/ngx_stream_core_module.xml<br class="">+++ b/xml/ru/docs/stream/ngx_stream_core_module.xml<br class="">@@ -9,7 +9,7 @@<br class=""> <module name="Модуль ngx_stream_core_module"<br class="">         link="/ru/docs/stream/ngx_stream_core_module.html"<br class="">         lang="ru"<br class="">-        rev="35"><br class="">+        rev="36"><br class=""><br class=""> <section id="summary"><br class=""><br class="">@@ -591,6 +591,110 @@<br class=""> </para><br class=""> </tag-desc><br class=""><br class="">+<tag-name id="var_proxy_protocol_tlv_"><var>$proxy_protocol_tlv_</var><value>имя</value></tag-name><br class="">+<tag-desc><br class="">+TLV, полученный из заголовка протокола PROXY (1.23.2).<br class="">+<literal>Имя</literal> может быть именем типа TLV или его числовым значением.<br class="">+В последнем случае значение задаётся в шестнадцатеричном виде<br class="">+и должно начинаться с <literal>0x</literal>:<br class="">+<br class="">+<example><br class="">+$proxy_protocol_tlv_alpn<br class="">+$proxy_protocol_tlv_0x01<br class="">+</example><br class="">+SSL TLV могут также быть доступны как по имени типа TLV,<br class="">+так и по его числовому значению,<br class="">+оба должны начинаться с <literal>ssl_</literal>:<br class="">+<example><br class="">+$proxy_protocol_tlv_ssl_version<br class="">+$proxy_protocol_tlv_ssl_0x22<br class="">+</example><br class="">+<br class="">+<para><br class="">+Поддерживаются следующие имена типов TLV:<br class="">+<list type="bullet"><br class="">+<br class="">+<listitem><br class="">+<literal>alpn</literal> (<literal>0x01</literal>)&mdash;<br class="">+протокол более высокого уровня, используемый поверх соединения<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>authority</literal> (<literal>0x02</literal>)&mdash;<br class="">+значение имени хоста, передаваемое клиентом<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>unique_id</literal> (<literal>0x05</literal>)&mdash;<br class="">+уникальный идентификатор соединения<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>netns</literal> (<literal>0x30</literal>)&mdash;<br class="">+имя пространства имён<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl</literal> (<literal>0x20</literal>)&mdash;<br class="">+клиентские SSL поля в бинарном виде<br class="">+</listitem><br class="">+<br class="">+</list><br class="">+</para><br class="">+<br class="">+<para><br class="">+Поддерживаются следующие имена типов SSL TLV:<br class="">+<list type="bullet"><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_version</literal> (<literal>0x21</literal>)&mdash;<br class="">+версия SSL, используемая в клиентском соединении<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_cn</literal> (<literal>0x22</literal>)&mdash;<br class="">+Common Name сертификата<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_cipher</literal> (<literal>0x23</literal>)&mdash;<br class="">+имя используемого шифра<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_sig_alg</literal> (<literal>0x24</literal>)&mdash;<br class="">+алгоритм, используемый для подписи сертификата<br class="">+</listitem><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_key_alg</literal> (<literal>0x25</literal>)&mdash;<br class="">+алгоритм публичного ключа<br class="">+</listitem><br class="">+<br class="">+</list><br class="">+</para><br class="">+<br class="">+<para><br class="">+Также поддерживается следующее специальное имя типа SSL TLV:<br class="">+<list type="bullet"><br class="">+<br class="">+<listitem><br class="">+<literal>ssl_verify</literal>&mdash;<br class="">+результат проверки клиентского сертификата:<br class="">+<literal>0</literal>, если клиент предоставил сертификат<br class="">+и он был успешно верифицирован,<br class="">+либо ненулевое значение<br class="">+</listitem><br class="">+<br class="">+</list><br class="">+</para><br class="">+<br class="">+<para><br class="">+Протокол PROXY должен быть предварительно включён при помощи установки<br class="">+параметра <literal>proxy_protocol</literal> в директиве <link id="listen"/>.<br class="">+</para><br class="">+</tag-desc><br class="">+<br class=""> <tag-name id="var_remote_addr"><var>$remote_addr</var></tag-name><br class=""> <tag-desc><br class=""> адрес клиента<br class="">_______________________________________________<br class="">nginx-devel mailing list -- <a href="mailto:nginx-devel@nginx.org" class="">nginx-devel@nginx.org</a><br class="">To unsubscribe send an email to <a href="mailto:nginx-devel-leave@nginx.org" class="">nginx-devel-leave@nginx.org</a><br class=""></div></blockquote><br class=""></div><div>This has been slightly updated during internal review,</div><div><br class=""></div><div>Overall, looks good to me.</div><br class=""><div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div>----</div><div>Roman Arutyunyan</div><div><a href="mailto:arut@nginx.com" class="">arut@nginx.com</a></div><div class=""><br class=""></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">

</div>
<br class=""></body></html>