body { background: white; color: black; font-family: sans-serif; line-height: 1.4em; text-align: center; margin: 0; padding: 0; } #banner { background: black; color: #F2F2F2; line-height: 1.2em; padding: .3em 0; box-shadow: 0 5px 10px black; } #banner a { color: #00B140; } #main { text-align: left; margin: 0 auto; min-width: 32em; max-width: 64em; } #menu { float: right; width: 11em; padding: 0 .5em 1em .5em; border-left: 2px solid #DDD; } #content { margin-right: 13.5em; padding: 0 .2em 0 1.5em; } h1 { display: block; font-size: 3em; text-align: left; height: .7em; margin: 0; margin-bottom: .5em; } h1 img { width: 100%; } h2 { text-align: center; } p { text-align: justify; } table.news p { margin-top: 0; } table.news td { vertical-align: baseline; } table.news .date { text-align: right; padding-right: 0.5em; white-space: nowrap; } table.donors td { vertical-align: baseline; } table.donors li { text-align: left; } div.directive { background: #F2F2F2; line-height: 1em; margin: 1em 0 1em -1em; padding: .7em .7em .7em 1em; border-top: 2px solid #DDD; } div.directive th { padding-left: 0; padding-right: .5em; vertical-align: baseline; text-align: left; font-weight: normal; } div.directive td { vertical-align: baseline; } div.directive pre { padding: 0; margin: 0; } div.directive p { margin: .5em 0 0 .1em; font-size: .8em; } a.notrans { color: gray; text-decoration:none; } span.initial { font-size: 200%; float: left; padding-right: 10pt;} ul, ol { margin: .5em 0 1em 1em; padding: 0 .5em; } ol { list-style-position: inside; } li { text-align: justify; padding: .5em 0 0 1px; } .compact li { padding-top: 0; } dl { margin: .5em 0 1em 0; } dt { margin: .5em 0; } .compact dt { margin-bottom: .2em; } dd { margin-left: 1.5em; padding-left: 1px; text-align: justify; } td.list { background: #F2F2F2; } blockquote { margin: 1em 0 1em 1em; padding: .5em; } li blockquote, dd blockquote { margin: .7em 0; } blockquote.note { border: 1px dotted #999; line-height: 1.2em; text-align: justify; } blockquote.example { line-height: 1em; border-left: 1px solid #BBB; } blockquote.example pre { padding: 0; margin: 0; } sup { font-size: 50%; } .video { position: relative; padding-bottom: 56.25%; overflow: hidden; } .video iframe, .video object, .video embed { position: absolute; top:0; left:0; width:100%; height:100%; }
english
русский
новости [en]
об nginx
скачать
безопасность [en]
документация
faq
книги [en]
поддержка
trac
twitter
blog
unit
njs
nginx
Основная функциональность HTTP-сервера
Другие возможности HTTP-сервера
Функциональность почтового прокси-сервера
Функциональность TCP/UDP прокси-сервера
Архитектура и масштабируемость
Протестированные ОС и платформы
nginx [engine x] — это HTTP-сервер и обратный прокси-сервер,
почтовый прокси-сервер,
а также TCP/UDP прокси-сервер общего назначения,
изначально написанный Игорем Сысоевым.
Уже длительное время он обслуживает
серверы многих высоконагруженных российских сайтов, таких как
Яндекс,
Mail.Ru,
ВКонтакте и
Рамблер.
Согласно статистике Netcraft nginx обслуживал или проксировал
20.54%
самых нагруженных сайтов в апреле 2024 года.
Вот некоторые примеры успешного внедрения nginx (тексты на английском языке):
Dropbox,
Netflix,
Wordpress.com,
FastMail.FM.
Исходные тексты и документация распространяются под
BSD-подобной лицензией из 2 пунктов.
Коммерческая поддержка осуществляется компанией
Nginx, Inc.
Основная функциональность HTTP-сервера
-
Обслуживание статических запросов,
индексных
файлов,
автоматическое
создание списка файлов,
кэш дескрипторов открытых файлов;
-
Акселерированное
обратное проксирование с кэшированием,
распределение нагрузки
и отказоустойчивость;
-
Акселерированная поддержка
FastCGI,
uwsgi,
SCGI и
memcached
серверов с кэшированием,
распределение нагрузки
и отказоустойчивость;
-
Модульность, фильтры, в том числе
сжатие (gzip),
byte-ranges (докачка),
chunked ответы,
XSLT-фильтр,
SSI-фильтр,
преобразование
изображений;
несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре
через прокси или FastCGI/uwsgi/SCGI, выполняются параллельно;
-
Поддержка SSL и
расширения TLS SNI;
-
Поддержка HTTP/2
с приоритизацией на основе весов и зависимостей;
-
Поддержка HTTP/3.
Другие возможности HTTP-сервера
Функциональность почтового прокси-сервера
-
Перенаправление пользователя на
IMAP-
или
POP3-сервер
с использованием внешнего HTTP-сервера
аутентификации;
-
Проверка пользователя с помощью внешнего 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.
Функциональность TCP/UDP прокси-сервера
Архитектура и масштабируемость
-
Один главный и несколько рабочих процессов, рабочие процессы работают под
непривилегированным пользователем;
-
Гибкость конфигурации;
-
Изменение настроек
и обновление
исполняемого файла без перерыва в обслуживании клиентов;
-
Поддержка
kqueue (FreeBSD 4.1+),
epoll (Linux 2.6+),
/dev/poll (Solaris 7 11/99+),
event ports (Solaris 10),
select и poll;
-
Использование возможностей, предоставляемых kqueue, таких как
EV_CLEAR, EV_DISABLE (для временного выключения события),
NOTE_LOWAT, EV_EOF, число доступных данных, коды ошибок;
-
Использование возможностей, предоставляемых epoll, таких как
EPOLLRDHUP (Linux 2.6.17+, glibc 2.8+) и
EPOLLEXCLUSIVE (Linux 4.5+, glibc 2.24+);
-
Поддержка sendfile (FreeBSD 3.1+, Linux 2.2+, macOS 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+, macOS);
-
Поддержка
accept-фильтров (FreeBSD 4.1+, NetBSD 5.0+) и TCP_DEFER_ACCEPT (Linux 2.4+);
-
На 10 000 неактивных HTTP keep-alive соединений расходуется
около 2.5M памяти;
-
Минимум операций копирования данных.
Протестированные ОС и платформы
-
FreeBSD 3 — 12 / i386;
FreeBSD 5 — 12 / amd64;
FreeBSD 11 / ppc;
FreeBSD 12 / ppc64;
-
Linux 2.2 — 4 / i386;
Linux 2.6 — 5 / amd64;
Linux 3 — 4 / armv6l, armv7l, aarch64, ppc64le;
Linux 4 — 5 / s390x;
-
Solaris 9 / i386, sun4u;
Solaris 10 / i386, amd64, sun4v;
Solaris 11 / x86;
-
AIX 7.1 / powerpc;
-
HP-UX 11.31 / ia64;
-
macOS / ppc, i386, x86_64;
-
Windows XP,
Windows Server 2003,
Windows 7,
Windows 10.