view xml/en/index.xml @ 617:368a449e85b8

Expanded documentation of what various parameters of the "listen" directive related to socket options do. While here, documented the fact that accept filters also work on NetBSD.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 02 Aug 2012 13:24:07 +0000
parents 764fbac1b8b4
children 625b592698b6
line wrap: on
line source

<!--
  Copyright (C) Igor Sysoev
  Copyright (C) Nginx, Inc.
  -->

<!DOCTYPE article SYSTEM "../../dtd/article.dtd">

<article name="nginx"
         link="/en/"
         lang="en"
         rev="1">


<section>

<para>
nginx [engine x] is an HTTP and reverse proxy server,
as well as a mail proxy server,
written by <link url="http://sysoev.ru/en/">Igor Sysoev</link>.
For a long time, it has been running
on many heavily loaded Russian sites including
<link url="http://www.yandex.ru">Yandex</link>,
<link url="http://www.mail.ru">Mail.Ru</link>,
<link url="http://vkontakte.ru">VKontakte</link>, and
<link url="http://www.rambler.ru">Rambler</link>.
According to Netcraft nginx served or proxied
<link url="http://news.netcraft.com/archives/2012/07/03/july-2012-web-server-survey.html">12.49%
busiest sites in July 2012</link>.
Here are some of the success stories:
<link url="https://signup.netflix.com/openconnect/software">Netflix</link>,
<link url="http://barry.wordpress.com/2008/04/28/load-balancer-update/">Wordpress.com</link>,
<link url="http://blog.fastmail.fm/2007/01/04/webimappop-frontend-proxies-changed-to-nginx/">FastMail.FM</link>.
</para>

<para>
The sources and documentation are distributed under the
<link url="../LICENSE">2-clause BSD-like license</link>.
</para>

</section>


<section id="basic_http_features"
        name="Basic HTTP server features">

<para>
<list type="bullet">

<listitem>
Serving static and
<link doc="docs/http/ngx_http_index_module.xml">index</link>
files,
<link doc="docs/http/ngx_http_autoindex_module.xml">autoindexing</link>;
<link doc="docs/http/ngx_http_core_module.xml"
       id="open_file_cache">open file descriptor cache</link>;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_proxy_module.xml">Accelerated
reverse proxying with caching</link>;
<link doc="docs/http/ngx_http_upstream_module.xml">simple
load balancing and fault tolerance</link>;
</listitem>

<listitem>
Accelerated support with caching of
<link doc="docs/http/ngx_http_fastcgi_module.xml">FastCGI</link>,
uwsgi, SCGI, and
<link doc="docs/http/ngx_http_memcached_module.xml">memcached</link>
servers;
<link doc="docs/http/ngx_http_upstream_module.xml">simple
load balancing and fault tolerance</link>;
</listitem>

<listitem>
Modular architecture.
Filters include
<link doc="docs/http/ngx_http_gzip_module.xml">gzipping</link>,
byte ranges, chunked responses,
<link doc="docs/http/ngx_http_xslt_module.xml">XSLT</link>,
<link doc="docs/http/ngx_http_ssi_module.xml">SSI</link>,
and <link doc="docs/http/ngx_http_image_filter_module.xml">image
transformation</link> filter.
Multiple SSI inclusions within a single page can be processed in
parallel if they are handled by proxied or FastCGI servers;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_ssl_module.xml">SSL and
TLS SNI support</link>.
</listitem>

</list>
</para>

</section>


<section id="other_http_features"
        name="Other HTTP server features">

<para>
<list type="bullet">

<listitem>
Name-based and IP-based
<link doc="docs/http/request_processing.xml">virtual servers</link>;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_core_module.xml"
       id="keepalive_timeout">Keep-alive</link>
and pipelined connections support;
</listitem>

<listitem>
Flexible configuration;
</listitem>

<listitem>
<link doc="docs/control.xml" id="reconfiguration">Reconfiguration</link>
and <link doc="docs/control.xml" id="upgrade">upgrade of an
executable</link> without interruption of the client servicing;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_log_module.xml" id="log_format">Access
log formats</link>,
<link doc="docs/http/ngx_http_log_module.xml" id="access_log">buffered
log writing</link>, and
<link doc="docs/control.xml" id="logs">fast log rotation</link>;
</listitem>

<listitem>
3xx-5xx error codes
<link doc="docs/http/ngx_http_core_module.xml"
       id="error_page">redirection</link>;
</listitem>

<listitem>
The rewrite module:
<link doc="docs/http/ngx_http_rewrite_module.xml">URI changing
using regular expressions</link>;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_rewrite_module.xml" id="if">Executing
different functions</link> depending on the
<link doc="docs/http/ngx_http_geo_module.xml">client address</link>;
</listitem>

<listitem>
Access control based on
<link doc="docs/http/ngx_http_access_module.xml">client IP address</link>
and <link doc="docs/http/ngx_http_auth_basic_module.xml">HTTP
Basic authentication</link>;
</listitem>

<listitem>
Validation of
<link doc="docs/http/ngx_http_referer_module.xml">HTTP referer</link>;
</listitem>

<listitem>
The <link doc="docs/http/ngx_http_dav_module.xml">PUT, DELETE, MKCOL, COPY,
and MOVE</link> methods;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_flv_module.xml">FLV</link>
and
<link doc="docs/http/ngx_http_mp4_module.xml">MP4</link>
streaming;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_core_module.xml"
       id="limit_rate">Response rate limiting</link>;
</listitem>

<listitem>
Limiting the number of simultaneous
<link doc="docs/http/ngx_http_limit_conn_module.xml">connections</link>
or
<link doc="docs/http/ngx_http_limit_req_module.xml">requests</link>
coming from one address;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_perl_module.xml">Embedded Perl</link>.
</listitem>

</list>
</para>

</section>


<section id="mail_proxy_server_features"
        name="Mail proxy server features">

<para>
<list type="bullet">

<listitem>
User redirection to IMAP/POP3 backend using an external HTTP
authentication server;
</listitem>

<listitem>
User authentication using an external HTTP authentication server
and connection redirection to an internal SMTP backend;
</listitem>

<listitem>
Authentication methods:

<list type="bullet">

<listitem>
POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
</listitem>

<listitem>
IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
</listitem>

<listitem>
SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;
</listitem>

</list>
</listitem>

<listitem>
SSL support;
</listitem>

<listitem>
STARTTLS and STLS support.
</listitem>

</list>
</para>

</section>


<section id="architecture_and_scalability"
        name="Architecture and scalability">

<para>
<list type="bullet">

<listitem>
One master and several worker processes;
worker processes run under an unprivileged user;
</listitem>

<listitem>
<link doc="docs/events.xml">Support</link> 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;
</listitem>

<listitem>
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;
</listitem>

<listitem>
sendfile (FreeBSD 3.1+, Linux 2.2+, Mac OS X 10.5+), sendfile64 (Linux 2.4.21+),
and sendfilev (Solaris 8 7/01+) support;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_core_module.xml" id="aio">File AIO</link>
(FreeBSD 4.3+, Linux 2.6.22+);
</listitem>

<listitem>
<link doc="docs/http/ngx_http_core_module.xml" id="directio">DIRECTIO</link>
(FreeBSD 4.4+, Linux 2.4+, Solaris 2.6+, Mac OS X);
</listitem>

<listitem>
Accept-filters (FreeBSD 4.1+, NetBSD 5.0+) and TCP_DEFER_ACCEPT (Linux 2.4+)
<link doc="docs/http/ngx_http_core_module.xml" id="listen">support</link>;
</listitem>

<listitem>
10,000 inactive HTTP keep-alive connections take about 2.5M memory;
</listitem>

<listitem>
Data copy operations are kept to a minimum.
</listitem>

</list>
</para>

</section>


<section id="tested_os_and_platforms"
        name="Tested OS and platforms">

<para>
<list type="bullet">

<listitem>
FreeBSD 3&mdash;10 / i386; FreeBSD 5&mdash;10 / amd64;
</listitem>

<listitem>
Linux 2.2&mdash;3 / i386; Linux 2.6&mdash;3 / amd64;
</listitem>

<listitem>
Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v;
</listitem>

<listitem>
AIX 7.1 / powerpc;
</listitem>

<listitem>
HP-UX 11.31 / ia64;
</listitem>

<listitem>
Mac OS X / ppc, i386;
</listitem>

<listitem>
Windows XP, Windows Server 2003.
</listitem>

</list>
</para>

</section>

</article>