Персональный
сайт
Игоря
Сысоева


 
english
 
sysoev.ru
 
nginx
 поехали!    
 документация    
 поддержка    
 изменения    
 скачать    
 ссылки    
 
mod_accel
mod_realip
mod_deflate
программирование
всякая всячина
windows
freebsd
apache
pppd
unix
web
 
обо мне
для писем
для денег
 

nginx

 

15.09.2008

nginx [engine x] — это HTTP-сервер и почтовый прокси-сервер. Я начал разрабатывать nginx весной 2002 года, а осенью 2004 года вышел первый публично доступный релиз. На данный момент nginx работает на нескольких достаточно нагруженных сайтах под FreeBSD и Linux, в том числе на большинстве серверов Рамблера, и я рассматриваю версию nginx-0.6.32 как стабильную с точки зрения надёжности. Однако функциональность некоторых модулей будет меняться, вследствие чего, будут меняться и директивы, поэтому обратной совместимости до версии 1.0.0 не гарантируется. Предыдущие версии в большинстве случаев тоже вполне работоспособны. Об исправленных ошибках и новых возможностях можно узнать в файле изменений.

Основная функциональность HTTP-сервера:

Функциональность почтового прокси-сервера:

  • IMAP и POP3: перенаправление пользователя на IMAP или POP3-бэкенд с использованием внешнего HTTP-сервера аутентификации;
  • SMTP: проверка пользователя с помощью внешнего HTTP-сервера аутентификации и перенаправление соединения на внутренний SMTP-сервер;
  • методы аутентификации:
    • POP3: USER/PASS, APOP, AUTH LOGIN PLAIN CRAM-MD5;
    • IMAP: LOGIN, AUTH LOGIN PLAIN CRAM-MD5;
    • SMTP: AUTH LOGIN PLAIN CRAM-MD5;
  • поддержка SSL;
  • поддержка STARTTLS и STLS;

Операционные системы и платформы:

  • тестировалась сборка и работа на:
    FreeBSD 3  — 7 платформа i386; FreeBSD 3  — 7 платформа amd64;
    Linux 2.2  — 2.6 платформа i386; Linux 2.6 платформа amd64;
    Solaris 9 платформы i386 и sun4u; Solaris 10 платформы i386, amd64 и sun4v;
    MacOS X платформы ppc, i386;

Архитектура и масштабируемость:

  • один главный процесс и несколько рабочих, рабочие процессы работают под непривилегированным пользователем;
  • поддержка kqueue (FreeBSD 4.1+), epoll (Linux 2.6+), rt signals (Linux 2.2.19+), /dev/poll (Solaris 7 11/99+), event ports (Solaris 10), select и poll;
  • использование возможностей, предоставляемых kqueue, таких как EV_CLEAR, EV_DISABLE (для временного выключения события), NOTE_LOWAT, EV_EOF, число доступных данных, коды ошибок;
  • поддержка sendfile (FreeBSD 3.1+, Linux 2.2.+, Mac OS X 10.5+), sendfile64 (Linux 2.4.21+) и sendfilev (Solaris 8 7/01+);
  • поддержка accept-фильтров (FreeBSD 4.1+) и TCP_DEFER_ACCEPT (Linux 2.4+);
  • на 10 000 неактивных HTTP keep-alive соединений расходуется около 2.5M памяти;
  • минимум операций копирования данных;

Другие возможности HTTP-сервера:

Экспериментальные возможности:

  • встроенный perl;
  • экспериментальный модуль, работающий с сокетами через aio_read()/aio_write(), только под FreeBSD;

(C) Игорь Сысоев
http://sysoev.ru