view xml/ru/index.xml @ 3024:25a473b55e7b

Updated with Netcraft October 2023 Web Server Survey stats.
author Yaroslav Zhuravlev <yar@nginx.com>
date Thu, 02 Nov 2023 09:07:56 +0000
parents 8e7eced98610
children 08533e33d074
line wrap: on
line source

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

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

<article name="nginx"
         link="/ru/"
         lang="ru"
         rev="159">


<section>

<para>
nginx [engine x]&mdash;это HTTP-сервер и обратный прокси-сервер,
почтовый прокси-сервер,
а также TCP/UDP прокси-сервер общего назначения,
изначально написанный <link url="http://sysoev.ru">Игорем Сысоевым</link>.
Уже длительное время он обслуживает
серверы многих высоконагруженных российских сайтов, таких как
<link url="http://www.yandex.ru">Яндекс</link>,
<link url="http://mail.ru">Mail.Ru</link>,
<link url="http://vk.com">ВКонтакте</link> и
<link url="http://www.rambler.ru">Рамблер</link>.
Согласно статистике Netcraft nginx обслуживал или проксировал
<link url="https://www.netcraft.com/blog/october-2023-web-server-survey/">20.66%
самых нагруженных сайтов в октябре 2023 года</link>.
Вот некоторые примеры успешного внедрения nginx (тексты на английском языке):
<link url="https://blogs.dropbox.com/tech/2017/09/optimizing-web-servers-for-high-throughput-and-low-latency/">Dropbox</link>,
<link url="https://openconnect.netflix.com/en/software/">Netflix</link>,
<link url="https://www.nginx.com/case-studies/nginx-wordpress-com/">Wordpress.com</link>,
<link url="http://blog.fastmail.fm/2007/01/04/webimappop-frontend-proxies-changed-to-nginx/">FastMail.FM</link>.
</para>

<para>
Исходные тексты и документация распространяются под
<link url="../LICENSE">BSD-подобной лицензией из 2 пунктов</link>.
</para>

<para>
Коммерческая поддержка осуществляется компанией
<link url="https://www.nginx.com">Nginx, Inc.</link>
</para>

</section>


<section id="basic_http_features"
        name="Основная функциональность HTTP-сервера">

<para>
<list type="bullet">

<listitem>
Обслуживание статических запросов,
<link doc="docs/http/ngx_http_index_module.xml">индексных
файлов</link>,
<link doc="docs/http/ngx_http_autoindex_module.xml">автоматическое
создание списка файлов</link>,
<link doc="docs/http/ngx_http_core_module.xml"
       id="open_file_cache">кэш дескрипторов открытых файлов</link>;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_proxy_module.xml">Акселерированное
обратное проксирование с кэшированием</link>,
<link doc="docs/http/ngx_http_upstream_module.xml">распределение нагрузки
и отказоустойчивость</link>;
</listitem>

<listitem>
Акселерированная поддержка
<link doc="docs/http/ngx_http_fastcgi_module.xml">FastCGI</link>,
<link doc="docs/http/ngx_http_uwsgi_module.xml">uwsgi</link>,
<link doc="docs/http/ngx_http_scgi_module.xml">SCGI</link> и
<link doc="docs/http/ngx_http_memcached_module.xml">memcached</link>
серверов с кэшированием,
<link doc="docs/http/ngx_http_upstream_module.xml">распределение нагрузки
и отказоустойчивость</link>;
</listitem>

<listitem>
Модульность, фильтры, в том числе
<link doc="docs/http/ngx_http_gzip_module.xml">сжатие (gzip)</link>,
byte-ranges (докачка),
chunked ответы,
<link doc="docs/http/ngx_http_xslt_module.xml">XSLT-фильтр</link>,
<link doc="docs/http/ngx_http_ssi_module.xml">SSI-фильтр</link>,
<link doc="docs/http/ngx_http_image_filter_module.xml">преобразование
изображений</link>;
несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре
через прокси или FastCGI/uwsgi/SCGI, выполняются параллельно;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_ssl_module.xml">Поддержка SSL и
расширения TLS SNI</link>;
</listitem>

<listitem>
Поддержка <link doc="docs/http/ngx_http_v2_module.xml">HTTP/2</link>
с приоритизацией на основе весов и зависимостей;
</listitem>

<listitem>
Поддержка <link doc="docs/http/ngx_http_v3_module.xml">HTTP/3</link>.
</listitem>

</list>
</para>

</section>


<section id="other_http_features"
        name="Другие возможности HTTP-сервера">

<para>
<list type="bullet">

<listitem>
<link doc="docs/http/request_processing.xml">Виртуальные серверы</link>,
определяемые по IP-адресу и имени;
</listitem>

<listitem>
Поддержка
<link doc="docs/http/ngx_http_core_module.xml"
       id="keepalive_timeout">keep-alive</link>
и pipelined соединений;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_log_module.xml" id="log_format">Настройка
форматов логов</link>,
<link doc="docs/http/ngx_http_log_module.xml" id="access_log">буферизованная
запись в лог</link>,
<link doc="docs/control.xml" id="logs">быстрая ротация логов</link>,
<link doc="docs/syslog.xml">запись в syslog</link>;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_core_module.xml" id="error_page">Специальные
страницы</link> для ошибок 3xx-5xx;
</listitem>

<listitem>
rewrite-модуль:
<link doc="docs/http/ngx_http_rewrite_module.xml">изменение URI
с помощью регулярных выражений</link>;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_rewrite_module.xml" id="if">Выполнение
разных функций</link> в зависимости от
<link doc="docs/http/ngx_http_geo_module.xml">адреса клиента</link>;
</listitem>

<listitem>
Ограничение доступа в зависимости от
<link doc="docs/http/ngx_http_access_module.xml">адреса клиента</link>,
<link doc="docs/http/ngx_http_auth_basic_module.xml">по паролю
(HTTP Basic аутентификация)</link> и по
<link doc="docs/http/ngx_http_auth_request_module.xml">результату
подзапроса</link>;
</listitem>

<listitem>
Проверка <link doc="docs/http/ngx_http_referer_module.xml">HTTP referer</link>;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_dav_module.xml">Методы
PUT, DELETE, MKCOL, COPY и MOVE</link>;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_flv_module.xml">FLV</link>
и
<link doc="docs/http/ngx_http_mp4_module.xml">MP4</link>
стриминг;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_core_module.xml"
       id="limit_rate">Ограничение скорости отдачи ответов</link>;
</listitem>

<listitem>
Ограничение числа одновременных
<link doc="docs/http/ngx_http_limit_conn_module.xml">соединений</link> и
<link doc="docs/http/ngx_http_limit_req_module.xml">запросов</link>
с одного адреса;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_geoip_module.xml">Геолокация по IP-адресу</link>;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_split_clients_module.xml">A/B-тестирование</link>;
</listitem>

<listitem>
<link doc="docs/http/ngx_http_mirror_module.xml">Зеркалирование запросов</link>;
</listitem>

<listitem>
Встроенный <link doc="docs/http/ngx_http_perl_module.xml">Perl</link>;
</listitem>

<listitem>
сценарный язык <link doc="docs/njs/index.xml">njs</link>.
</listitem>

</list>
</para>

</section>


<section id="mail_proxy_server_features"
        name="Функциональность почтового прокси-сервера">

<para>
<list type="bullet">

<listitem>
Перенаправление пользователя на
<link doc="docs/mail/ngx_mail_imap_module.xml">IMAP</link>-
или
<link doc="docs/mail/ngx_mail_pop3_module.xml">POP3</link>-сервер
с использованием внешнего HTTP-сервера
<link doc="docs/mail/ngx_mail_auth_http_module.xml">аутентификации</link>;
</listitem>

<listitem>
Проверка пользователя с помощью внешнего HTTP-сервера
<link doc="docs/mail/ngx_mail_auth_http_module.xml">аутентификации</link>
и перенаправление соединения на внутренний
<link doc="docs/mail/ngx_mail_smtp_module.xml">SMTP</link>-сервер;
</listitem>

<listitem>
Методы аутентификации:

<list type="bullet">

<listitem>
<link doc="docs/mail/ngx_mail_pop3_module.xml" id="pop3_auth">POP3</link>:
USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
</listitem>

<listitem>
<link doc="docs/mail/ngx_mail_imap_module.xml" id="imap_auth">IMAP</link>:
LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
</listitem>

<listitem>
<link doc="docs/mail/ngx_mail_smtp_module.xml" id="smtp_auth">SMTP</link>:
AUTH LOGIN/PLAIN/CRAM-MD5;
</listitem>

</list>
</listitem>

<listitem>
Поддержка <link doc="docs/mail/ngx_mail_ssl_module.xml">SSL</link>;
</listitem>

<listitem>
Поддержка
<link doc="docs/mail/ngx_mail_ssl_module.xml" id="starttls">STARTTLS
и STLS</link>.
</listitem>

</list>
</para>

</section>


<section id="generic_proxy_server_features"
        name="Функциональность TCP/UDP прокси-сервера">

<para>
<list type="bullet">

<listitem>
<link doc="docs/stream/ngx_stream_proxy_module.xml">Проксирование
TCP и UDP;</link>
</listitem>

<listitem>
Поддержка <link doc="docs/stream/ngx_stream_ssl_module.xml">SSL</link> и
расширения TLS
<link doc="docs/stream/ngx_stream_ssl_preread_module.xml">SNI</link>
для TCP;
</listitem>

<listitem>
<link doc="docs/stream/ngx_stream_upstream_module.xml">Распределение нагрузки
и отказоустойчивость</link>;
</listitem>

<listitem>
Ограничение доступа в зависимости от
<link doc="docs/stream/ngx_stream_access_module.xml">адреса клиента</link>;
</listitem>

<listitem>
Выполнение разных функций в зависимости от
<link doc="docs/http/ngx_http_geo_module.xml">адреса клиента</link>;
</listitem>

<listitem>
Ограничение числа одновременных
<link doc="docs/stream/ngx_stream_limit_conn_module.xml">соединений</link>
с одного адреса;
</listitem>

<listitem>
<link doc="docs/stream/ngx_stream_log_module.xml" id="log_format">Настройка
форматов логов</link>,
<link doc="docs/stream/ngx_stream_log_module.xml" id="access_log">буферизованная
запись в лог</link>,
<link doc="docs/control.xml" id="logs">быстрая ротация логов</link>,
<link doc="docs/syslog.xml">запись в syslog</link>;
</listitem>

<listitem>
<link doc="docs/stream/ngx_stream_geoip_module.xml">Геолокация по IP-адресу</link>;
</listitem>

<listitem>
<link doc="docs/stream/ngx_stream_split_clients_module.xml">A/B-тестирование</link>;
</listitem>

<listitem>
сценарный язык <link doc="docs/njs/index.xml">njs</link>.
</listitem>

</list>
</para>

</section>


<section id="architecture_and_scalability"
        name="Архитектура и масштабируемость">

<para>
<list type="bullet">

<listitem>
Один главный и несколько рабочих процессов, рабочие процессы работают под
непривилегированным пользователем;
</listitem>

<listitem>
<link doc="docs/example.xml">Гибкость конфигурации</link>;
</listitem>

<listitem>
<link doc="docs/control.xml" id="reconfiguration">Изменение настроек</link>
и <link doc="docs/control.xml" id="upgrade">обновление
исполняемого файла</link> без перерыва в обслуживании клиентов;
</listitem>

<listitem>
<link doc="docs/events.xml">Поддержка</link>
kqueue (FreeBSD 4.1+),
epoll (Linux 2.6+),
/dev/poll <nobr>(Solaris 7 11/99+),</nobr>
event ports <nobr>(Solaris 10),</nobr>
select и poll;
</listitem>

<listitem>
Использование возможностей, предоставляемых kqueue, таких как
<!-- EVFILT_VNODE, --> EV_CLEAR, EV_DISABLE (для временного выключения события),
NOTE_LOWAT, EV_EOF, число доступных данных, коды ошибок;
</listitem>

<listitem>
Использование возможностей, предоставляемых epoll, таких как
EPOLLRDHUP (Linux 2.6.17+, glibc 2.8+) и
EPOLLEXCLUSIVE (Linux 4.5+, glibc 2.24+);
</listitem>

<listitem>
Поддержка sendfile (FreeBSD 3.1+, Linux 2.2+, macOS 10.5+),
sendfile64 (Linux 2.4.21+) и sendfilev <nobr>(Solaris 8 7/01+);</nobr>
</listitem>

<listitem>
Поддержка
<link doc="docs/http/ngx_http_core_module.xml" id="aio">файлового
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+, macOS);
</listitem>

<listitem>
<link doc="docs/http/ngx_http_core_module.xml" id="listen">Поддержка</link>
accept-фильтров (FreeBSD 4.1+, NetBSD 5.0+) и TCP_DEFER_ACCEPT (Linux 2.4+);
</listitem>

<listitem>
На <nobr>10 000</nobr> неактивных HTTP keep-alive соединений расходуется
около 2.5M памяти;
</listitem>

<listitem>
Минимум операций копирования данных.
</listitem>

</list>
</para>

</section>


<section id="tested_os_and_platforms"
        name="Протестированные ОС и платформы">

<para>
<list type="bullet">

<listitem>
FreeBSD 3&mdash;12 / i386;
FreeBSD 5&mdash;12 / amd64;
FreeBSD 11 / ppc;
FreeBSD 12 / ppc64;
</listitem>

<listitem>
Linux 2.2&mdash;4 / i386;
Linux 2.6&mdash;5 / amd64;
Linux 3&mdash;4 / armv6l, armv7l, aarch64, ppc64le;
Linux 4&mdash;5 / s390x;
</listitem>

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

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

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

<listitem>
macOS / ppc, i386, x86_64;
</listitem>

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

</list>
</para>

</section>

</article>