nginx 30.09.2011
nginx [engine x] это HTTP-сервер и почтовый прокси-сервер.
Я начал разрабатывать nginx весной 2002 года, а осенью 2004 года вышел
первый публично доступный релиз.
В декабре 2009 года nginx использовался на
4% самых посещаемых сайтов в мире.
Основная функциональность HTTP-сервера:
-
обслуживание статических запросов,
индексных файлов,
автоматическое
создание списка файлов,
кэш
дескрипторов открытых файлов;
- акселерированное
проксирование с кэшированием,
простое
распределение нагрузки и отказоустойчивость;
- акселерированная
поддержка удалённых FastCGI серверов с кэшированием,
простое
распределение нагрузки и отказоустойчивость;
-
модульность, фильтры, в том числе
сжатие (gzip),
byte-ranges (докачка),
chunked ответы,
XSLT-фильтр,
SSI-фильтр,
преобразование
изображений;
несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре
через прокси или FastCGI, выполняются параллельно.
- поддержка SSL и
расширения TLS SNI;
Функциональность почтового прокси-сервера:
-
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 LOGI/ 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; Windows XP, Windows Server 2003.
Архитектура и масштабируемость:
-
один главный процесс и несколько рабочих, рабочие процессы работают под
непривилегированным пользователем;
- поддержка 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+);
-
поддержка файлового
AIO (FreeBSD 4.3+, Linux 2.6.22+);
-
поддержка DIRECTIO
(FreeBSD 4.4+, Linux 2.4+, Solaris 2.6+, Mac OS X);
- поддержка
accept-фильтров (FreeBSD 4.1+) и TCP_DEFER_ACCEPT (Linux 2.4+);
-
на 10 000 неактивных HTTP keep-alive соединений расходуется
около 2.5M памяти;
-
минимум операций копирования данных;
Другие возможности HTTP-сервера:
(C) Игорь Сысоев http://sysoev.ru |