view xml/ru/docs/stream/ngx_stream_ssl_preread_module.xml @ 2522:91d725e52633

Fixed typos (ticket #1949).
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 08 Apr 2020 11:19:30 +0300
parents da8e5d713962
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>