nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server written by Igor Sysoev. It has been running for more than five years on many heavily loaded Russian sites including Rambler (RamblerMedia.com). According to Netcraft nginx served or proxied 4.70% busiest sites in April 2010. Here are some of success stories: FastMail.FM, WordPress.com.
The sources are licensed under 2-clause BSD-like license.
Changes with nginx 1.4.3 08 Oct 2013
*) Bugfix: a segmentation fault might occur in a worker process if the
ngx_http_spdy_module was used with the “client_body_in_file_only”
*) Bugfix: a segmentation fault might occur on start or during
reconfiguration if the “try_files” directive was used with an empty
*) Bugfix: the $request_time variable did not work in nginx/Windows.
*) Bugfix: in the ngx_http_auth_basic_module when using “$apr1$”
password encryption method.
Thanks to Markus Linnala.
*) Bugfix: in the ngx_http_autoindex_module.
*) Bugfix: in the mail proxy server.
Basic HTTP features
* Serving static and index files, and autoindexing; open file descriptor cache;
* Accelerated reverse proxying with caching; simple load balancing and fault tolerance;
* Accelerated support with caching of remote FastCGI servers; simple load balancing and fault tolerance;
* Modular architecture. Filters include gzipping, byte ranges, chunked responses, XSLT, SSI, and image resizing filter. Multiple SSI inclusions within a single page can be processed in parallel if they are handled by FastCGI or proxied servers.
* SSL and TLS SNI support.
Other HTTP features
* Name-based and IP-based virtual servers;
* Keep-alive and pipelined connections support;
* Flexible configuration;
* Reconfiguration and online upgrade without interruption of the client processing;
* Access log formats, bufferred log writing, and quick log rotation;
* 3xx-5xx error codes redirection;
* The rewrite module;
* Access control based on client IP address and HTTP Basic authentication;
* The PUT, DELETE, MKCOL, COPY and MOVE methods;
* FLV streaming;
* Speed limitation;
* Limitation of simultaneous connections or requests from one address.
* Embedded perl.
Mail proxy server features
* User redirection to IMAP/POP3 backend using an external HTTP authentication server;
* User authentication using an external HTTP authentication server and connection redirection to internal SMTP backend;
* Authentication methods:
o POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
o IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
o SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;
* SSL support;
* STARTTLS and STLS support.
Architecture and scalability
* One master process and several workers processes. The workers run as unprivileged user;
* The notification methods: 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 disable event temporalily), 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+);
* Accept-filters (FreeBSD 4.1+) 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 — 8 / i386; FreeBSD 5 — 8 / 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.