aktuelle.kurse/oldies/m239/unterlagen/50 - Internetserver/01 - Webserver/NGINX/Website für NGINX

424 lines
15 KiB
Plaintext
Raw Normal View History

2022-05-15 21:40:59 +02:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>nginx</title><style type="text/css">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%; }</style><script>
window.addEventListener("load", function(e) {
fetch("../banner/banner.html")
.then((response) => response.text())
.then((resp) => {
document.getElementById("banner").innerHTML = resp;
})
.catch((error) => {
console.warn(error);
});
});
</script><script>
(function(w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start': new Date().getTime(),
event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-TPSP33');
</script></head><body><div id="banner"></div><div id="main"><div id="menu"><h1><a href="/"><img src="/nginx.png" alt="nginx"></a></h1><div>english<br><a href="../ru/">русский</a><br><br><a href="../">news</a><br>about<br><a href="download.html">download</a><br><a href="security_advisories.html">security</a><br><a href="docs/">documentation</a><br><a href="docs/faq.html">faq</a><br><a href="books.html">books</a><br><a href="support.html">support</a><br><br><a href="http://trac.nginx.org/nginx">trac</a><br><a href="http://twitter.com/nginxorg">twitter</a><br><a href="https://www.nginx.com/blog/">blog</a><br><br><a href="https://unit.nginx.org/">unit</a><br><a href="docs/njs/">njs</a><br></div></div><div id="content"><h2>nginx</h2><table width="100%"><tr><td align="left"><a href="#basic_http_features">Basic HTTP server features</a><br><a href="#other_http_features">Other HTTP server features</a><br><a href="#mail_proxy_server_features">Mail proxy server features</a><br><a href="#generic_proxy_server_features">TCP/UDP proxy server features</a><br><a href="#architecture_and_scalability">Architecture and scalability</a><br><a href="#tested_os_and_platforms">Tested OS and platforms</a><br></td></tr></table><p>
nginx [engine x] is an HTTP and reverse proxy server,
a mail proxy server,
and a generic TCP/UDP proxy server,
originally written by <a href="http://sysoev.ru/en/">Igor Sysoev</a>.
For a long time, it has been running
on many heavily loaded Russian sites including
<a href="http://www.yandex.ru">Yandex</a>,
<a href="http://mail.ru">Mail.Ru</a>,
<a href="http://vk.com">VK</a>, and
<a href="http://www.rambler.ru">Rambler</a>.
According to Netcraft, nginx served or proxied
<a href="https://news.netcraft.com/archives/2022/04/27/april-2022-web-server-survey.html">21.79%
busiest sites in April 2022</a>.
Here are some of the success stories:
<a href="https://blogs.dropbox.com/tech/2017/09/optimizing-web-servers-for-high-throughput-and-low-latency/">Dropbox</a>,
<a href="https://openconnect.netflix.com/en/software/">Netflix</a>,
<a href="https://www.nginx.com/case-studies/nginx-wordpress-com/">Wordpress.com</a>,
<a href="http://blog.fastmail.fm/2007/01/04/webimappop-frontend-proxies-changed-to-nginx/">FastMail.FM</a>.
</p><p>
The sources and documentation are distributed under the
<a href="../LICENSE">2-clause BSD-like license</a>.
</p><p>
Commercial support is available from
<a href="https://www.nginx.com">Nginx, Inc.</a>
</p><a name="basic_http_features"></a><center><h4>Basic HTTP server features</h4></center><p>
</p> <ul class="compact">
<li>
Serving static and
<a href="docs/http/ngx_http_index_module.html">index</a>
files,
<a href="docs/http/ngx_http_autoindex_module.html">autoindexing</a>;
<a href="docs/http/ngx_http_core_module.html#open_file_cache">open file descriptor cache</a>;
</li>
<li>
<a href="docs/http/ngx_http_proxy_module.html">Accelerated
reverse proxying with caching</a>;
<a href="docs/http/ngx_http_upstream_module.html">load balancing
and fault tolerance</a>;
</li>
<li>
Accelerated support with caching of
<a href="docs/http/ngx_http_fastcgi_module.html">FastCGI</a>,
<a href="docs/http/ngx_http_uwsgi_module.html">uwsgi</a>,
<a href="docs/http/ngx_http_scgi_module.html">SCGI</a>, and
<a href="docs/http/ngx_http_memcached_module.html">memcached</a>
servers;
<a href="docs/http/ngx_http_upstream_module.html">load balancing
and fault tolerance</a>;
</li>
<li>
Modular architecture.
Filters include
<a href="docs/http/ngx_http_gzip_module.html">gzipping</a>,
byte ranges, chunked responses,
<a href="docs/http/ngx_http_xslt_module.html">XSLT</a>,
<a href="docs/http/ngx_http_ssi_module.html">SSI</a>,
and <a href="docs/http/ngx_http_image_filter_module.html">image
transformation</a> filter.
Multiple SSI inclusions within a single page can be processed in
parallel if they are handled by proxied or FastCGI/uwsgi/SCGI servers;
</li>
<li>
<a href="docs/http/ngx_http_ssl_module.html">SSL and
TLS SNI support</a>;
</li>
<li>
Support for <a href="docs/http/ngx_http_v2_module.html">HTTP/2</a>
with weighted and dependency-based prioritization.
</li>
</ul><p>
</p><a name="other_http_features"></a><center><h4>Other HTTP server features</h4></center><p>
</p> <ul class="compact">
<li>
Name-based and IP-based
<a href="docs/http/request_processing.html">virtual servers</a>;
</li>
<li>
<a href="docs/http/ngx_http_core_module.html#keepalive_timeout">Keep-alive</a>
and pipelined connections support;
</li>
<li>
<a href="docs/http/ngx_http_log_module.html#log_format">Access
log formats</a>,
<a href="docs/http/ngx_http_log_module.html#access_log">buffered
log writing</a>,
<a href="docs/control.html#logs">fast log rotation</a>, and
<a href="docs/syslog.html">syslog logging</a>;
</li>
<li>
3xx-5xx error codes
<a href="docs/http/ngx_http_core_module.html#error_page">redirection</a>;
</li>
<li>
The rewrite module:
<a href="docs/http/ngx_http_rewrite_module.html">URI changing
using regular expressions</a>;
</li>
<li>
<a href="docs/http/ngx_http_rewrite_module.html#if">Executing
different functions</a> depending on the
<a href="docs/http/ngx_http_geo_module.html">client address</a>;
</li>
<li>
Access control based on
<a href="docs/http/ngx_http_access_module.html">client IP address</a>,
<a href="docs/http/ngx_http_auth_basic_module.html">by password (HTTP
Basic authentication)</a> and by the
<a href="docs/http/ngx_http_auth_request_module.html">result of
subrequest</a>;
</li>
<li>
Validation of
<a href="docs/http/ngx_http_referer_module.html">HTTP referer</a>;
</li>
<li>
The <a href="docs/http/ngx_http_dav_module.html">PUT, DELETE, MKCOL, COPY,
and MOVE</a> methods;
</li>
<li>
<a href="docs/http/ngx_http_flv_module.html">FLV</a>
and
<a href="docs/http/ngx_http_mp4_module.html">MP4</a>
streaming;
</li>
<li>
<a href="docs/http/ngx_http_core_module.html#limit_rate">Response rate limiting</a>;
</li>
<li>
Limiting the number of simultaneous
<a href="docs/http/ngx_http_limit_conn_module.html">connections</a>
or
<a href="docs/http/ngx_http_limit_req_module.html">requests</a>
coming from one address;
</li>
<li>
<a href="docs/http/ngx_http_geoip_module.html">IP-based geolocation</a>;
</li>
<li>
<a href="docs/http/ngx_http_split_clients_module.html">A/B testing</a>;
</li>
<li>
<a href="docs/http/ngx_http_mirror_module.html">Request mirroring</a>;
</li>
<li>
Embedded <a href="docs/http/ngx_http_perl_module.html">Perl</a>;
</li>
<li>
<a href="docs/njs/index.html">njs</a> scripting language.
</li>
</ul><p>
</p><a name="mail_proxy_server_features"></a><center><h4>Mail proxy server features</h4></center><p>
</p> <ul class="compact">
<li>
User redirection to
<a href="docs/mail/ngx_mail_imap_module.html">IMAP</a>
or
<a href="docs/mail/ngx_mail_pop3_module.html">POP3</a>
server using an external HTTP
<a href="docs/mail/ngx_mail_auth_http_module.html">authentication</a>
server;
</li>
<li>
User authentication using an external HTTP
<a href="docs/mail/ngx_mail_auth_http_module.html">authentication</a>
server and connection redirection to an internal
<a href="docs/mail/ngx_mail_smtp_module.html">SMTP</a> server;
</li>
<li>
Authentication methods:
<ul class="compact">
<li>
<a href="docs/mail/ngx_mail_pop3_module.html#pop3_auth">POP3</a>:
USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
</li>
<li>
<a href="docs/mail/ngx_mail_imap_module.html#imap_auth">IMAP</a>:
LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
</li>
<li>
<a href="docs/mail/ngx_mail_smtp_module.html#smtp_auth">SMTP</a>:
AUTH LOGIN/PLAIN/CRAM-MD5;
</li>
</ul>
</li>
<li>
<a href="docs/mail/ngx_mail_ssl_module.html">SSL</a> support;
</li>
<li>
<a href="docs/mail/ngx_mail_ssl_module.html#starttls">STARTTLS
and STLS</a> support.
</li>
</ul><p>
</p><a name="generic_proxy_server_features"></a><center><h4>TCP/UDP proxy server features</h4></center><p>
</p> <ul class="compact">
<li>
<a href="docs/stream/ngx_stream_proxy_module.html">Generic proxying</a>
of TCP and UDP;
</li>
<li>
<a href="docs/stream/ngx_stream_ssl_module.html">SSL</a> and
TLS <a href="docs/stream/ngx_stream_ssl_preread_module.html">SNI</a> support
for TCP;
</li>
<li>
<a href="docs/stream/ngx_stream_upstream_module.html">Load balancing
and fault tolerance</a>;
</li>
<li>
Access control based on
<a href="docs/stream/ngx_stream_access_module.html">client address</a>;
</li>
<li>
Executing different functions depending on the
<a href="docs/stream/ngx_stream_geo_module.html">client address</a>;
</li>
<li>
Limiting the number of simultaneous
<a href="docs/stream/ngx_stream_limit_conn_module.html">connections</a>
coming from one address;
</li>
<li>
<a href="docs/stream/ngx_stream_log_module.html#log_format">Access
log formats</a>,
<a href="docs/stream/ngx_stream_log_module.html#access_log">buffered
log writing</a>,
<a href="docs/control.html#logs">fast log rotation</a>, and
<a href="docs/syslog.html">syslog logging</a>;
</li>
<li>
<a href="docs/stream/ngx_stream_geoip_module.html">IP-based geolocation</a>;
</li>
<li>
<a href="docs/stream/ngx_stream_split_clients_module.html">A/B testing</a>;
</li>
<li>
<a href="docs/njs/index.html">njs</a> scripting language.
</li>
</ul><p>
</p><a name="architecture_and_scalability"></a><center><h4>Architecture and scalability</h4></center><p>
</p> <ul class="compact">
<li>
One master and several worker processes;
worker processes run under an unprivileged user;
</li>
<li>
<a href="docs/example.html">Flexible configuration</a>;
</li>
<li>
<a href="docs/control.html#reconfiguration">Reconfiguration</a>
and <a href="docs/control.html#upgrade">upgrade of an
executable</a> without interruption of the client servicing;
</li>
<li>
<a href="docs/events.html">Support</a> for
kqueue (FreeBSD 4.1+),
epoll (Linux 2.6+),
/dev/poll (Solaris 7 11/99+), event ports (Solaris 10),
select, and poll;
</li>
<li>
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;
</li>
<li>
The support of various epoll features including
EPOLLRDHUP (Linux 2.6.17+, glibc 2.8+) and
EPOLLEXCLUSIVE (Linux 4.5+, glibc 2.24+);
</li>
<li>
sendfile (FreeBSD 3.1+, Linux 2.2+, macOS 10.5+), sendfile64 (Linux 2.4.21+),
and sendfilev (Solaris 8 7/01+) support;
</li>
<li>
<a href="docs/http/ngx_http_core_module.html#aio">File AIO</a>
(FreeBSD 4.3+, Linux 2.6.22+);
</li>
<li>
<a href="docs/http/ngx_http_core_module.html#directio">DIRECTIO</a>
(FreeBSD 4.4+, Linux 2.4+, Solaris 2.6+, macOS);
</li>
<li>
Accept-filters (FreeBSD 4.1+, NetBSD 5.0+) and TCP_DEFER_ACCEPT (Linux 2.4+)
<a href="docs/http/ngx_http_core_module.html#listen">support</a>;
</li>
<li>
10,000 inactive HTTP keep-alive connections take about 2.5M memory;
</li>
<li>
Data copy operations are kept to a minimum.
</li>
</ul><p>
</p><a name="tested_os_and_platforms"></a><center><h4>Tested OS and platforms</h4></center><p>
</p> <ul class="compact">
<li>
FreeBSD 3 — 12 / i386;
FreeBSD 5 — 12 / amd64;
FreeBSD 11 / ppc;
FreeBSD 12 / ppc64;
</li>
<li>
Linux 2.2 — 4 / i386;
Linux 2.6 — 5 / amd64;
Linux 3 — 4 / armv6l, armv7l, aarch64, ppc64le;
Linux 4 — 5 / s390x;
</li>
<li>
Solaris 9 / i386, sun4u;
Solaris 10 / i386, amd64, sun4v;
Solaris 11 / x86;
</li>
<li>
AIX 7.1 / powerpc;
</li>
<li>
HP-UX 11.31 / ia64;
</li>
<li>
macOS / ppc, i386, x86_64;
</li>
<li>
Windows XP,
Windows Server 2003,
Windows 7,
Windows 10.
</li>
</ul><p>
</p></div></div></body></html>