aktuelle.kurse/oldies/m239/unterlagen/50 - Internetserver/01 - Webserver/NGINX/Website für NGINX
Müller Harald 3fdacd20c0 muh
2022-07-28 09:14:44 +02:00

424 lines
15 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>