Mercurial > hg > nginx-site
view xml/ru/docs/stream/ngx_stream_ssl_preread_module.xml @ 2526:450860350bf7
Updated with Netcraft April 2020 Web Server Survey stats.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Wed, 15 Apr 2020 19:19:25 +0100 |
parents | 91d725e52633 |
children | 4add6ae1296f |
line wrap: on
line source
<?xml version="1.0"?> <!-- Copyright (C) Nginx, Inc. --> <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> <module name="Модуль ngx_stream_ssl_preread_module" link="/ru/docs/stream/ngx_stream_ssl_preread_module.html" lang="ru" rev="3"> <section id="summary"> <para> Модуль <literal>ngx_stream_ssl_preread_module</literal> (1.11.5) позволяет извлекать информацию из сообщения <link url="https://tools.ietf.org/html/rfc5246#section-7.4.1.2">ClientHello</link> без терминирования SSL/TLS, например имя сервера, запрошенное через <link url="https://tools.ietf.org/html/rfc6066#section-3">SNI</link> или протоколы, указанные в <link url="https://tools.ietf.org/html/rfc7301">ALPN</link>. По умолчанию этот модуль не собирается, его сборку необходимо разрешить с помощью конфигурационного параметра <literal>--with-stream_ssl_preread_module</literal>. </para> </section> <section id="example" name="Пример конфигурации"> <para> Выбор сервера по имени: <example> map $ssl_preread_server_name $name { backend.example.com backend; default backend2; } upstream backend { server 192.168.0.1:12345; server 192.168.0.2:12345; } upstream backend2 { server 192.168.0.3:12345; server 192.168.0.4:12345; } server { listen 12346; proxy_pass $name; ssl_preread on; } </example> </para> <para> Выбор сервера по протоколу: <example> map $ssl_preread_alpn_protocols $proxy { ~\bh2\b 127.0.0.1:8001; ~\bhttp/1.1\b 127.0.0.1:8002; ~\bxmpp-client\b 127.0.0.1:8003; } server { listen 9000; proxy_pass $proxy; ssl_preread on; } </example> </para> <para> Выбор сервера по версии протокола SSL: <example> map $ssl_preread_protocol $upstream { "" ssh.example.com:22; "TLSv1.2" new.example.com:443; default tls.example.com:443; } # ssh и https на одном порту server { listen 192.168.0.1:443; proxy_pass $upstream; ssl_preread on; } </example> </para> </section> <section id="directives" name="Директивы"> <directive name="ssl_preread"> <syntax><literal>on</literal> | <literal>off</literal></syntax> <default>off</default> <context>stream</context> <context>server</context> <para> Разрешает извлечение информации из сообщения ClientHello во время фазы <link doc="stream_processing.xml" id="preread_phase">предварительного чтения</link>. </para> </directive> </section> <section id="variables" name="Встроенные переменные"> <para> <list type="tag"> <tag-name id="var_ssl_preread_protocol"><var>$ssl_preread_protocol</var></tag-name> <tag-desc> максимальная версия протокола SSL, поддерживаемая клиентом (1.15.2) </tag-desc> <tag-name id="var_ssl_preread_server_name"><var>$ssl_preread_server_name</var></tag-name> <tag-desc> имя сервера, запрошенное через SNI </tag-desc> <tag-name id="var_ssl_preread_alpn_protocols"><var>$ssl_preread_alpn_protocols</var></tag-name> <tag-desc> список протоколов, переданный клиентом через ALPN (1.13.10). Значения разделяются запятыми. </tag-desc> </list> </para> </section> </module>