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
According to Netcraft nginx served or proxied
busiest sites in January 2013.
Here are some of the success stories:
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
server using an external HTTP
User authentication using an external HTTP
server and connection redirection to an internal
USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
and STLS support.
Architecture and scalability
One master and several worker processes;
worker processes run under an unprivileged user;
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,
sendfile (FreeBSD 3.1+, Linux 2.2+, Mac OS X 10.5+), sendfile64 (Linux 2.4.21+),
and sendfilev (Solaris 8 7/01+) support;
(FreeBSD 4.3+, Linux 2.6.22+);
(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+)
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.