Содержание

Директивы модуля ngx_http_core_module

По умолчанию модули imap не собирается, нужно разрешить его сборку при конфигурировании параметром –with-imap.

Пример конфигурации

  worker_processes  1; # рекомендуется установить равным числу CPU
  
  error_log  /var/log/nginx/error.log info;
  
  imap {
      server_name  mail.example.ru;
      auth_http    localhost:9000/cgi-bin/nginxauth.cgi;
  
      pop3_capabilities "LAST" "TOP" "USER" "PIPELINING" "UIDL";
      imap_capabilities "IMAP4rev1" "UIDPLUS" "IDLE" "LITERAL+" "QUOTA";
  
      server {
          listen     110;
          protocol   pop3;
          auth       plain apop cram-md5;
          proxy      on;
          proxy_pass_error_message  on;
      }
      server {
          listen     143;
          protocol   imap;
          proxy      on;
      }
  }

Директивы

auth

syntax: auth [plain] [apop] [cram-md5]
default: plain
context: imap, server

Директива задаёт разрешенные методы аутентификации в pop3:

imap_capabilities

syntax: imap_capabilities «capability1» [«capability2» .. «capabilityN»]
default: «IMAP4» «IMAP4rev1» «UIDPLUS»
context: imap, server

Директива позволяет указать список расширений протокола IMAP, выдаваемый клиенту по команде CAPABILITY. К этому списку автоматически добавляется STARTTLS если включена директива starttls

В данной директиве имеет смысл указать расширения поддерживаемых pop3-бэкендами на которые проксируются клиенты (если эти расширения относятся к командам используемым после авторизации, когда nginx прозрачно проксирует подключение клиента на бэкенд).

Текущий список стандартизованных расширений опубликован на www.iana.org.

imap_client_buffer

syntax: imap_client_buffer размер
default: 4k/8k
context: imap, server

Задаёт размер буфера, используемого для чтения imap комманд??? По умолчанию размер буфера равен размеру страницы, в зависимости от платформы это или 4K, или 8K.

listen

syntax: listen адрес:порт [bind]
default: нет
context: server

Директива задаёт адрес и порт, на которых сервер принимает запросы. Можно указать только порт, кроме того, адрес может быть именем сервера, например:

  listen  127.0.0.1:110;
  listen  *:110;
  listen  110;   # то же самое что *:110
  listen  localhost:110;

Разные виртуальные сервера должны слушать разные пары ip и port.

pop3_capabilities

syntax: pop3_capabilities «capability1» [«capability2» .. «capabilityN»]
default: «TOP» «USER» «UIDL»
context: imap, server

Директива позволяет указать список расширений протокола POP3, выдаваемый клиенту по команде CAPA. К этому списку автоматически добавляются методы авторизации, указанные в директиве auth auth (SASL capability) и STLS если включена директива starttls

Текущий список стандартизованных расширений опубликован на www.iana.org.

protocol

syntax: protocol pop3|imap
default: imap
context: server

server

syntax: server { … }
default: нет
context: imap

Директива задаёт конфигурацию для виртуального сервера.

server_name

syntax: server_name fqdn_server_host
default: имя хоста, полученное через gethostname()
context: imap, server

Задает имя сервера, используемое:

so_keepalive

syntax: so_keepalive on|off
default: off
context: imap, server

Устанавливать опцию сокета SO_KEEPALIVE при подключении к imap/pop3 бэкенду. Во FreeBSD keepalive используются по умолчанию для всех соединений и необходимости явно задавать это через setsockopt нет (см. sysctl net.inet.tcp.always_keepalive).

timeout

syntax: timeout время
default: timeout 60
context: imap, server