nginx [engine x] is an HTTP and reverse proxy server,
as well as a mail proxy server,
written by Igor Sysoev.
For a long time, it has been running
on many heavily loaded Russian sites including
Yandex,
Mail.Ru,
VKontakte, and
Rambler.
According to Netcraft nginx served or proxied
12.77%
busiest sites in January 2013.
Here are some of the success stories:
Netflix,
Wordpress.com,
FastMail.FM.
The sources and documentation are distributed under the
2-clause BSD-like license.
Basic HTTP server features
Other HTTP server features
Mail proxy server features
-
User redirection to
IMAP
or
POP3
server using an external HTTP
authentication
server;
-
User authentication using an external HTTP
authentication
server and connection redirection to an internal
SMTP server;
-
Authentication methods:
-
POP3:
USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
-
IMAP:
LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
-
SMTP:
AUTH LOGIN/PLAIN/CRAM-MD5;
-
SSL support;
-
STARTTLS
and STLS support.
Architecture and scalability
-
One master and several worker processes;
worker processes run under an unprivileged user;
-
Support for
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, and poll;
-
The support of the various kqueue features including EV_CLEAR, EV_DISABLE
(to temporarily disable events), NOTE_LOWAT, EV_EOF, number of available data,
error codes;
-
sendfile (FreeBSD 3.1+, Linux 2.2+, Mac OS X 10.5+), sendfile64 (Linux 2.4.21+),
and sendfilev (Solaris 8 7/01+) support;
-
File AIO
(FreeBSD 4.3+, Linux 2.6.22+);
-
DIRECTIO
(FreeBSD 4.4+, Linux 2.4+, Solaris 2.6+, Mac OS X);
-
Accept-filters (FreeBSD 4.1+, NetBSD 5.0+) and TCP_DEFER_ACCEPT (Linux 2.4+)
support;
-
10,000 inactive HTTP keep-alive connections take about 2.5M memory;
-
Data copy operations are kept to a minimum.
Tested OS and platforms
-
FreeBSD 3 — 10 / i386; FreeBSD 5 — 10 / amd64;
-
Linux 2.2 — 3 / i386; Linux 2.6 — 3 / amd64;
-
Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v;
-
AIX 7.1 / powerpc;
-
HP-UX 11.31 / ia64;
-
Mac OS X / ppc, i386;
-
Windows XP, Windows Server 2003.
|