changeset 630:a235ce0f8eef

Initial mail proxy server documentation in Russian. Obtained from Anton Yuzhaninov.
author Ruslan Ermilov <ru@nginx.com>
date Wed, 15 Aug 2012 07:56:36 +0000
parents 7e4805858796
children 9015b4a0df44
files xml/ru/GNUmakefile xml/ru/docs/index.xml xml/ru/docs/mail/ngx_mail_auth_http_module.xml xml/ru/docs/mail/ngx_mail_core_module.xml xml/ru/docs/mail/ngx_mail_proxy_module.xml xml/ru/docs/mail/ngx_mail_ssl_module.xml
diffstat 6 files changed, 934 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/xml/ru/GNUmakefile
+++ b/xml/ru/GNUmakefile
@@ -65,6 +65,10 @@ REFS =									\
 		http/ngx_http_upstream_module				\
 		http/ngx_http_userid_module				\
 		http/ngx_http_xslt_module				\
+		mail/ngx_mail_core_module				\
+		mail/ngx_mail_auth_http_module				\
+		mail/ngx_mail_proxy_module				\
+		mail/ngx_mail_ssl_module				\
 
 REFS_XML =	$(foreach name, $(REFS), xml/$(DOC_LANG)/docs/$(name).xml)
 REFS_HTML =	$(foreach name, $(REFS), $(OUT)/$(DOC_LANG)/docs/$(name).html)
--- a/xml/ru/docs/index.xml
+++ b/xml/ru/docs/index.xml
@@ -285,6 +285,32 @@ ngx_http_xslt_module</link>
 </list>
 </para>
 
+<para>
+<list type="bullet">
+
+<listitem>
+<link doc="mail/ngx_mail_core_module.xml">
+ngx_mail_core_module</link>
+</listitem>
+
+<listitem>
+<link doc="mail/ngx_mail_auth_http_module.xml">
+ngx_mail_auth_http_module</link>
+</listitem>
+
+<listitem>
+<link doc="mail/ngx_mail_proxy_module.xml">
+ngx_mail_proxy_module</link>
+</listitem>
+
+<listitem>
+<link doc="mail/ngx_mail_ssl_module.xml">
+ngx_mail_ssl_module</link>
+</listitem>
+
+</list>
+</para>
+
 </section>
 
 </article>
new file mode 100644
--- /dev/null
+++ b/xml/ru/docs/mail/ngx_mail_auth_http_module.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0"?>
+
+<!--
+  Copyright (C) Anton Yuzhaninov 2006,2007
+  Copyright (C) Nginx, Inc.
+  -->
+
+<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
+
+<module name="Модуль ngx_mail_auth_http_module"
+        link="/ru/docs/mail/ngx_mail_auth_http_module.html"
+        lang="ru"
+        rev="1">
+
+<section id="directives" name="Директивы">
+
+<directive name="auth_http">
+<syntax><value>URL</value></syntax>
+<default/>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Задаёт URL HTTP-сервера авторизации.
+Протокол описан ниже.
+</para>
+
+</directive>
+
+
+<directive name="auth_http_header">
+<syntax><value>заголовок</value> <value>значение</value></syntax>
+<default/>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Позволяет добавить указанный заголовок к запросам на сервер авторизации.
+Можно использовать в качестве shared secret для проверки,
+что запрос поступил от nginx.
+Например:
+<example>
+auth_http_header X-Auth-Key "secret_string";
+</example>
+</para>
+
+</directive>
+
+
+<directive name="auth_http_timeout">
+<syntax><value>время</value></syntax>
+<default>60s</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+</para>
+
+</directive>
+
+</section>
+
+
+<section id="protocol" name="Протокол">
+
+<para>
+Для общения с сервером авторизации используется HTTP.
+Данные в теле ответа игнорируются, информация передаётся только в заголовках.
+</para>
+
+<para>
+Примеры запросов и ответов:
+</para>
+
+<para>
+Запрос:
+<example>
+GET /auth HTTP/1.0
+Host: localhost
+Auth-Method: plain # plain или apop или cram-md5
+Auth-User: user
+Auth-Pass: password
+Auth-Protocol: imap # imap, pop3 или smtp
+Auth-Login-Attempt: 1 # какая по счёту попытка в рамках одной сессии
+Client-IP: 192.168.1.1
+</example>
+Хороший ответ:
+<example>
+HTTP/1.0 200 OK # эта строка игнорируется
+Auth-Status: OK
+Auth-Server: 10.1.1.1
+Auth-Port: 143
+</example>
+Плохой ответ:
+<example>
+HTTP/1.0 200 OK # эта строка игнорируется
+Auth-Status: Invalid login or password
+Auth-Wait: 3 # подождать три секунды перед выдачей ошибки клиенту
+</example>
+</para>
+
+<para>
+Если заголовка <header>Auth-Wait</header> нет,
+то после выдачи ошибки соединение будет закрыто.
+В текущей реализации на каждую попытку авторизации выделяется память,
+которая освобождается только при завершении сессии.
+Поэтому число неудачных попыток авторизации в рамках одной сессии
+должно быть ограничено — после 10-20 попыток (см. заголовок
+<header>Auth-Login-Attempt</header>) сервер должен выдать ответ
+без заголовка <header>Auth-Wait</header>.
+</para>
+
+<para>
+При использовании APOP или CRAM-MD5 запрос-ответ будут выглядеть так:
+<example>
+GET /auth HTTP/1.0
+Host: localhost
+Auth-Method: apop
+Auth-User: user
+Auth-Salt: &lt;238188073.1163692009@mail.example.com&gt;
+Auth-Pass: auth_response
+Auth-Protocol: imap
+Auth-Login-Attempt: 1 # какая по счёту попытка в рамках одной сессии
+Client-IP: 192.168.1.1
+</example>
+Хороший ответ:
+<example>
+HTTP/1.0 200 OK # эта строка игнорируется
+Auth-Status: OK
+Auth-Server: 10.1.1.1
+Auth-Port: 143
+Auth-Pass: plain-text-pass
+</example>
+</para>
+
+<para>
+Для SMTP в ответе дополнительно учитывается заголовок
+<header>Auth-Error-Code</header> — если он есть,
+то используется как код ответа в случае ошибки.
+Если нет, то по умолчанию к <header>Auth-Status</header>
+будет добавлен код 535 5.7.0.
+</para>
+
+<para>
+Например, если от сервера авторизации будет получен ответ:
+<example>
+HTTP/1.0 200 OK
+Auth-Status: Temporary server problem, try again later
+Auth-Error-Code: 451 4.3.0
+Auth-Wait: 3
+</example>
+то по SMTP клиенту будет выдана ошибка
+<example>
+451 4.3.0 Temporary server problem, try again later
+</example>
+</para>
+
+</section>
+
+</module>
new file mode 100644
--- /dev/null
+++ b/xml/ru/docs/mail/ngx_mail_core_module.xml
@@ -0,0 +1,394 @@
+<?xml version="1.0"?>
+
+<!--
+  Copyright (C) Anton Yuzhaninov 2006,2007
+  Copyright (C) Nginx, Inc.
+  -->
+
+<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
+
+<module name="Модуль ngx_mail_core_module"
+        link="/ru/docs/mail/ngx_mail_core_module.html"
+        lang="ru"
+        rev="1">
+
+<section id="summary">
+
+<para>
+По умолчанию этот модуль не собирается, его сборку необходимо
+разрешить с помощью конфигурационного параметра
+<literal>--with-mail</literal>.
+</para>
+
+</section>
+
+
+<section id="example" name="Пример конфигурации">
+
+<para>
+<example>
+worker_processes 1;
+
+error_log /var/log/nginx/error.log info;
+
+mail {
+    server_name       mail.example.com;
+    auth_http         localhost:9000/cgi-bin/nginxauth.cgi;
+
+    imap_capabilities IMAP4rev1 UIDPLUS IDLE LITERAL+ QUOTA;
+
+    pop3_auth         plain apop cram-md5;
+    pop3_capabilities LAST TOP USER PIPELINING UIDL;
+
+    smtp_auth         login plain cram-md5;
+    smtp_capabilities "SIZE 10485760" ENHANCEDSTATUSCODES 8BITMIME DSN;
+    xclient           off;
+
+    server {
+        listen   25;
+        protocol smtp;
+        # По RFC 2821 таймаут должен быть 300 секунд
+        timeout  300s;
+    }
+    server {
+        listen   110;
+        protocol pop3;
+        proxy    on;
+        proxy_pass_error_message on;
+    }
+    server {
+        listen   143;
+        protocol imap;
+        proxy    on;
+    }
+    server {
+        listen   587;
+        protocol smtp;
+        timeout  300s;
+    }
+}
+</example>
+</para>
+
+</section>
+
+
+<section id="directives" name="Директивы">
+
+<directive name="imap_capabilities">
+<syntax><value>расширение</value> ...</syntax>
+<default>IMAP4 IMAP4rev1 UIDPLUS</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Позволяет указать список расширений
+<link url="http://tools.ietf.org/html/rfc3501">протокола IMAP</link>,
+выдаваемый клиенту по команде
+<literal>CAPABILITY</literal>.
+К этому списку автоматически добавляется
+<link url="http://tools.ietf.org/html/rfc2595">STARTTLS</link>,
+если включена директива <link doc="ngx_mail_ssl_module.xml" id="starttls"/>.
+</para>
+
+<para>
+В данной директиве имеет смысл указать расширения,
+поддерживаемые IMAP-бэкендами,
+на которые проксируются клиенты (если эти расширения относятся к командам,
+используемым после авторизации, когда nginx прозрачно проксирует подключение
+клиента на бэкенд).
+</para>
+
+<para>
+Текущий список стандартизованных расширений опубликован на
+<link url="http://www.iana.org/assignments/imap4-capabilities">www.iana.org</link>.
+</para>
+
+</directive>
+
+
+<directive name="imap_client_buffer">
+<syntax><value>размер</value></syntax>
+<default>4k|8k</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Задаёт размер буфера для чтения IMAP-команд.
+По умолчанию размер одного буфера равен размеру страницы.
+В зависимости от платформы это или 4K, или 8K.
+</para>
+
+</directive>
+
+
+<directive name="listen">
+<syntax>
+    <value>адрес</value>:<value>порт</value>
+    [<literal>bind</literal>]</syntax>
+<default/>
+<context>server</context>
+
+<para>
+Задаёт <value>адрес</value> и <value>порт</value> сокета, на котором сервер
+будет принимать запросы.
+Можно указать только порт.
+Кроме того, адрес может быть именем сервера, например:
+<example>
+listen 127.0.0.1:110;
+listen *:110;
+listen 110;     # то же, что и *:110
+listen localhost:110;
+</example>
+</para>
+
+<para>
+Необязательный параметр <literal>bind</literal>
+указывает, что для данной пары
+<value>адрес</value>:<value>порт</value> нужно делать
+<c-func>bind</c-func> отдельно.
+Дело в том, что если описаны несколько директив <literal>listen</literal>
+с одинаковым портом, но разными адресами и одна из директив
+<literal>listen</literal> слушает на всех адресах для данного порта
+(<literal>*:</literal><value>порт</value>, то nginx сделает
+<c-func>bind</c-func> только на <literal>*:</literal><value>порт</value>.
+Необходимо заметить, что в этом случае для определения адреса, на которой
+пришло соединение, делается системный вызов <c-func>getsockname</c-func>.
+</para>
+
+<para>
+Разные виртуальные серверы должны слушать на разных парах
+<value>адрес</value>:<value>порт</value>.
+</para>
+
+</directive>
+
+
+<directive name="pop3_auth">
+<syntax><value>метод</value> ...</syntax>
+<default>plain</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Задаёт разрешённые методы аутентификации POP3-клиентов.
+Поддерживаемые методы:
+<list type="tag">
+
+<tag-name><literal>plain</literal></tag-name>
+<tag-desc>
+<link url="http://tools.ietf.org/html/rfc1939">USER/PASS</link>,
+<link url="http://tools.ietf.org/html/rfc2595">AUTH PLAIN</link>,
+<link url="http://tools.ietf.org/html/draft-murchison-sasl-login-00">AUTH LOGIN</link>.
+Данные методы отключить нельзя.
+</tag-desc>
+
+<tag-name><literal>apop</literal></tag-name>
+<tag-desc>
+<link url="http://tools.ietf.org/html/rfc1939">APOP</link>.
+Для работы этого метода пароль должен храниться в незашифрованном виде.
+</tag-desc>
+
+<tag-name><literal>cram-md5</literal></tag-name>
+<tag-desc>
+<link url="http://tools.ietf.org/html/rfc2195">AUTH CRAM-MD5</link>.
+Для работы этого метода пароль должен храниться в незашифрованном виде.
+</tag-desc>
+
+</list>
+</para>
+
+</directive>
+
+
+<directive name="pop3_capabilities">
+<syntax><value>расширение</value> ...</syntax>
+<default>TOP USER UIDL</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Позволяет указать список расширений
+<link url="http://tools.ietf.org/html/rfc2449">протокола POP3</link>,
+выдаваемый клиенту по команде
+<literal>CAPA</literal>.
+К этому списку автоматически добавляются
+методы авторизации, указанные в директиве <link id="pop3_auth"/>
+(расширение <link url="http://tools.ietf.org/html/rfc2449">SASL</link>) и
+<link url="http://tools.ietf.org/html/rfc2595">STLS</link>,
+если включена директива <link doc="ngx_mail_ssl_module.xml" id="starttls"/>.
+</para>
+
+<para>
+В данной директиве имеет смысл указать расширения,
+поддерживаемые POP3-бэкендами,
+на которые проксируются клиенты (если эти расширения относятся к командам,
+используемым после авторизации, когда nginx прозрачно проксирует подключение
+клиента на бэкенд).
+</para>
+
+<para>
+Текущий список стандартизованных расширений опубликован на
+<link url="http://www.iana.org/assignments/pop3-extension-mechanism">www.iana.org</link>.
+</para>
+
+</directive>
+
+
+<directive name="protocol">
+<syntax>
+  <literal>imap</literal> |
+  <literal>pop3</literal> |
+  <literal>smtp</literal></syntax>
+<default/>
+<context>server</context>
+
+<para>
+</para>
+
+</directive>
+
+
+<directive name="server">
+<syntax block="yes"/>
+<default/>
+<context>mail</context>
+
+<para>
+Задаёт конфигурацию для виртуального сервера.
+</para>
+
+</directive>
+
+
+<directive name="server_name">
+<syntax><value>имя</value></syntax>
+<default>имя хоста</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Задаёт имя сервера, используемое:
+
+<list type="bullet">
+
+<listitem>
+в начальном приветствии POP3/SMTP-сервера;
+</listitem>
+
+<listitem>
+в salt при авторизации SASL-методом CRAM-MD5;
+</listitem>
+
+<listitem>
+в команде <literal>EHLO</literal> при подключении к SMTP-бэкенду,
+если включена команда <link doc="ngx_mail_proxy_module.xml" id="xclient"/>.
+</listitem>
+
+</list>
+
+</para>
+
+</directive>
+
+
+<directive name="smtp_auth">
+<syntax><value>метод</value> ...</syntax>
+<default>login plain</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Задаёт разрешённые методы
+<link url="http://tools.ietf.org/html/rfc2554">SASL-аутентификации</link>
+SMTP-клиентов.
+Поддерживаемые методы:
+<list type="tag">
+
+<tag-name><literal>login</literal></tag-name>
+<tag-desc>
+<link url="http://tools.ietf.org/html/draft-murchison-sasl-login-00">AUTH LOGIN</link>
+</tag-desc>
+
+<tag-name><literal>plain</literal></tag-name>
+<tag-desc>
+<link url="http://tools.ietf.org/html/rfc2595">AUTH PLAIN</link>
+</tag-desc>
+
+<tag-name><literal>cram-md5</literal></tag-name>
+<tag-desc>
+<link url="http://tools.ietf.org/html/rfc2195">AUTH CRAM-MD5</link>.
+Для работы этого метода пароль должен храниться в незашифрованном виде.
+</tag-desc>
+
+</list>
+</para>
+
+</directive>
+
+
+<directive name="smtp_capabilities">
+<syntax><value>расширение</value> ...</syntax>
+<default/>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Позволяет указать список расширений протокола SMTP,
+выдаваемый клиенту в ответе на команду
+<literal>EHLO</literal>.
+К этому списку автоматически добавляются
+методы авторизации, указанные в директиве <link id="smtp_auth"/>.
+</para>
+
+<para>
+В данной директиве имеет смысл указать расширения,
+поддерживаемые MTA,
+на который проксируются клиенты (если эти расширения относятся к командам,
+используемым после авторизации, когда nginx прозрачно проксирует подключение
+клиента на бэкенд).
+</para>
+
+<para>
+Текущий список стандартизованных расширений опубликован на
+<link url="http://www.iana.org/assignments/mail-parameters">www.iana.org</link>.
+</para>
+
+</directive>
+
+
+<directive name="so_keepalive">
+<syntax><literal>on</literal> | <literal>off</literal></syntax>
+<default>off</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+При подключении к IMAP/POP3-бэкенду определяет для сокета поведение
+“TCP keepalive”.
+Если директива не указана, то для сокета будут действовать
+настройки операционной системы.
+Если включено, то для сокета
+включается параметр <c-def>SO_KEEPALIVE</c-def>.
+Если выключено, то для сокета
+параметр <c-def>SO_KEEPALIVE</c-def> выключается.
+</para>
+
+</directive>
+
+
+<directive name="timeout">
+<syntax><value>время</value></syntax>
+<default>60s</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Задаёт таймаут, который используется до начала проксирования на бэкенд.
+</para>
+
+</directive>
+
+</section>
+
+</module>
new file mode 100644
--- /dev/null
+++ b/xml/ru/docs/mail/ngx_mail_proxy_module.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0"?>
+
+<!--
+  Copyright (C) Anton Yuzhaninov 2006,2007
+  Copyright (C) Nginx, Inc.
+  -->
+
+<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
+
+<module name="Модуль ngx_mail_proxy_module"
+        link="/ru/docs/mail/ngx_mail_proxy_module.html"
+        lang="ru"
+        rev="1">
+
+<section id="directives" name="Директивы">
+
+<!--
+<directive name="proxy">
+<syntax><literal>on</literal> | <literal>off</literal></syntax>
+<default>off</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+В текущей версии нигде не проверяется.
+</para>
+
+</directive>
+-->
+
+
+<directive name="proxy_buffer">
+<syntax><value>размер</value></syntax>
+<default>4k|8k</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Задаёт размер буфера, используемого при проксировании.
+По умолчанию размер одного буфера равен размеру страницы.
+В зависимости от платформы это или 4K, или 8K.
+</para>
+
+</directive>
+
+
+<directive name="proxy_pass_error_message">
+<syntax><literal>on</literal> | <literal>off</literal></syntax>
+<default>off</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Определяет, передавать ли клиенту сообщение об ошибке,
+полученное при авторизации на бэкенде.
+</para>
+
+<para>
+Обычно, если авторизация в nginx прошла успешно,
+бэкенд не может вернуть ошибку, и если она всё же есть,
+значит есть какая-то ошибка внутри системы.
+В таких случаях сообщение бэкенда может содержать информацию,
+которую нельзя показывать клиенту.
+Однако для некоторых POP3-серверов ошибка в ответ на правильный пароль
+является штатным поведением.
+Например, CommuniGatePro извещает пользователя о
+<link url="http://www.stalker.com/CommuniGatePro/Alerts.html#Quota">переполнении
+ящика</link> или других событиях, периодически выдавая
+<link url="http://www.stalker.com/CommuniGatePro/POP.html#Alerts">ошибку
+авторизации</link>.
+В этом случае директиву стоит включить.
+</para>
+
+</directive>
+
+
+<directive name="proxy_timeout">
+<syntax><value>время</value></syntax>
+<default>24h</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Задаёт таймаут, который используется после начала проксирования на бэкенд.
+</para>
+
+</directive>
+
+
+<directive name="xclient">
+<syntax><literal>on</literal> | <literal>off</literal></syntax>
+<default>on</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Разрешает или запрещает передачу команды <literal>XCLIENT</literal>
+при подключении к SMTP-бэкенду.
+Для работы команды <literal>XCLIENT</literal> необходим Postfix с
+<link url="http://citrin.ru/nginx:xclient-login-patch">патчем</link>,
+который добавляет параметр <literal>LOGIN</literal>.
+Если не использовать <literal>XCLIENT</literal>, то MTA не сможет писать в лог
+<literal>IP</literal>/<literal>HELO</literal>/<literal>LOGIN</literal>
+клиента и применять различные ограничения на основе этих данных.
+</para>
+
+<para>
+Если <literal>xclient</literal> включено,
+то при подключении к бэкенду nginx сначала передаёт
+<example>
+EHLO server_name
+</example>
+потом
+<example>
+XCLIENT PROTO=ESMTP HELO=client_hello ADDR=192.168.1.1 LOGIN=good_user NAME=[UNAVAILABLE]
+</example>
+Если клиент при подключении к nginx передал <literal>EHLO</literal>, то в
+команде <literal>XCLIENT</literal> передаётся <literal>PROTO=ESMTP</literal>.
+В противном случае передаётся <literal>PROTO=SMTP</literal>.
+В параметре <literal>ADDR</literal> указывается IP-адрес клиента,
+а поскольку nginx не обращается к DNS для получения имени хоста,
+то указывается <literal>NAME=[UNAVAILABLE]</literal>.
+</para>
+
+<para>
+Если же <literal>xclient</literal> выключено,
+то при подключении к бэкенду nginx передаёт
+<literal>EHLO</literal>, если его передал клиент,
+и <literal>HELO</literal> в остальных случаях.
+</para>
+
+</directive>
+
+</section>
+
+</module>
new file mode 100644
--- /dev/null
+++ b/xml/ru/docs/mail/ngx_mail_ssl_module.xml
@@ -0,0 +1,214 @@
+<?xml version="1.0"?>
+
+<!--
+  Copyright (C) Anton Yuzhaninov 2006,2007
+  Copyright (C) Nginx, Inc.
+  -->
+
+<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
+
+<module name="Модуль ngx_mail_ssl_module"
+        link="/ru/docs/mail/ngx_mail_ssl_module.html"
+        lang="ru"
+        rev="1">
+
+<section id="directives" name="Директивы">
+
+<directive name="ssl">
+<syntax><literal>on</literal> | <literal>off</literal></syntax>
+<default>off</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Включает протокол SSL/TLS для данного виртуального сервера.
+</para>
+
+</directive>
+
+
+<directive name="ssl_certificate">
+<syntax><value>файл</value></syntax>
+<default/>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Указывает файл с сертификатом в формате PEM
+для данного виртуального сервера.
+Если вместе с основным сертификатом нужно указать промежуточные,
+то они должны находиться в этом же файле в следующем порядке — сначала
+основной сертификат, а затем промежуточные.
+В этом же файле может находиться секретный ключ в формате PEM.
+</para>
+
+</directive>
+
+
+<directive name="ssl_certificate_key">
+<syntax><value>файл</value></syntax>
+<default/>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Указывает файл с секретным ключом в формате PEM
+для данного виртуального сервера.
+</para>
+
+</directive>
+
+
+<directive name="ssl_prefer_server_ciphers">
+<syntax><literal>on</literal> | <literal>off</literal></syntax>
+<default>off</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Указывает, чтобы при использовании протоколов SSLv3 и TLS
+серверные шифры были более приоритетны, чем клиентские.
+</para>
+
+</directive>
+
+
+<directive name="ssl_protocols">
+<syntax>
+    [<literal>SSLv2</literal>]
+    [<literal>SSLv3</literal>]
+    [<literal>TLSv1</literal>]
+    [<literal>TLSv1.1</literal>]
+    [<literal>TLSv1.2</literal>]</syntax>
+<default>SSLv3 TLSv1 TLSv1.1 TLSv1.2</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Разрешает указанные протоколы.
+Параметры <literal>TLSv1.1</literal> и <literal>TLSv1.2</literal> работают
+только при использовании библиотеки OpenSSL версии 1.0.1 и выше.
+<note>
+Параметры <literal>TLSv1.1</literal> и <literal>TLSv1.2</literal> поддерживаются
+только начиная с версий 1.1.13 и 1.0.12,
+поэтому при использовании OpenSSL версии 1.0.1
+и выше на старых версиях nginx эти протоколы работать будут, однако их нельзя
+будет отключить.
+</note>
+</para>
+
+</directive>
+
+
+<directive name="ssl_session_cache">
+<syntax>
+    <literal>off</literal> |
+    <literal>none</literal> |
+    [<literal>builtin</literal>[:<value>размер</value>]]
+    [<literal>shared</literal>:<value>название</value>:<value>размер</value>]</syntax>
+<default>none</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Задаёт тип и размеры кэшей для хранения параметров сессий.
+Тип кэша может быть следующим:
+<list type="tag" compact="no">
+
+<tag-name><literal>off</literal></tag-name>
+<tag-desc>
+жёсткое запрещение использования кэша сессий:
+nginx явно говорит клиенту, что сессии не могут использоваться повторно.
+</tag-desc>
+
+<tag-name><literal>none</literal></tag-name>
+<tag-desc>
+мягкое запрещение использования кэша сессий:
+nginx говорит клиенту, что сессии могут использоваться повторно, но
+на самом деле не используются.
+</tag-desc>
+
+<tag-name><literal>builtin</literal></tag-name>
+<tag-desc>
+встроенный в OpenSSL кэш, используется в рамках только одного рабочего процесса.
+Размер кэша задаётся в сессиях.
+Если размер не задан, то он равен 20480 сессиям.
+Использование встроенного кэша может вести к фрагментации памяти.
+</tag-desc>
+
+<tag-name><literal>shared</literal></tag-name>
+<tag-desc>
+разделяемый между всеми рабочими процессами.
+Размер кэша задаётся в байтах, в 1 мегабайт может поместиться
+около 4000 сессий.
+У каждого разделяемого кэша должно быть произвольное название.
+Кэш с одинаковым названием может использоваться в нескольких
+виртуальных серверах.
+</tag-desc>
+
+</list>
+</para>
+
+<para>
+Можно использовать одновременно оба типа кэша, например:
+<example>
+ssl_session_cache builtin:1000 shared:SSL:10m;
+</example>
+однако использование только разделяемого кэша без встроенного должно
+быть более эффективным.
+</para>
+
+</directive>
+
+
+<directive name="ssl_session_timeout">
+<syntax><value>время</value></syntax>
+<default>5m</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+Задаёт время, в течение которого клиент может повторно
+использовать параметры сессии, хранящейся в кэше.
+</para>
+
+</directive>
+
+
+<directive name="starttls">
+<syntax>
+  <literal>on</literal> |
+  <literal>off</literal> |
+  <literal>only</literal></syntax>
+<default>off</default>
+<context>mail</context>
+<context>server</context>
+
+<para>
+<list type="tag">
+
+<tag-name><literal>on</literal></tag-name>
+<tag-desc>
+разрешить использование команд <literal>STLS</literal> для POP3
+и <literal>STARTTLS</literal> для IMAP;
+</tag-desc>
+
+<tag-name><literal>off</literal></tag-name>
+<tag-desc>
+запретить использование команд <literal>STLS</literal>
+и <literal>STARTTLS</literal>;
+</tag-desc>
+
+<tag-name><literal>only</literal></tag-name>
+<tag-desc>
+требовать предварительного перехода на TLS.
+</tag-desc>
+
+</list>
+</para>
+
+</directive>
+
+</section>
+
+</module>