Перейти к содержанию

Увидел свет HTTP-сервер nginx 1.10.0

Материал из Викиновостей, свободного источника новостей

26 апреля 2016 года

После года разработки представлена новая стабильная ветка высокопроизводительного HTTP-сервера nginx 1.10.0, которая вобрала в себя изменения, накопленные в рамках основной ветки 1.9.x. В дальнейшем все изменения в стабильной ветке 1.10 будут связаны с устранением серьёзных ошибок и уязвимостей. В скором времени будет сформирована основная ветка nginx 1.11, в рамках которой будет продолжено развитие новых возможностей. Для обычных пользователей, у которых нет задачи обеспечить совместимость со сторонними модулями, рекомендуется использовать основную ветку, на базе которой раз в три месяца формируются выпуски коммерческого продукта Nginx Plus.

В соответствии с апрельским отчетом компании Netcraft nginx используется на 16.81% (год назад 14.24%, два года назад 14.22%) всех активных сайтов, что соответствует второму месту по популярности в данной категории (доля Apache соответствует 49.15%, а Microsoft IIS - 10.07%). Доля nginx среди всех сайтов составляет 13.23% (год назад 14.87%, два года назад 15.25%), среди миллиона самых посещаемых сайтов в мире - 25.64% (год назад 21.43%, два года назад 17.82%). В настоящее время под управлением nginx работает около 143 млн сайтов (год назад 126 млн). По данным W3Techs 29.8% из миллиона самых посещаемых сайтов в мире используют nginx, в апреле прошлого года этот показатель составлял 23.8%. В России nginx используется на 75.2% самых посещаемых сайтов (год назад - 71.3%).

Из улучшений, добавленных в процессе формирования основной ветки 1.9.x, можно отметить:

  • Добавлена поддержка динамически загружаемых модулей. Модуль оформляется в виде разделяемой библиотеки и загружается при помощи директивы load_module (например, «load_module modules/ngx_mail_module.so»). Из поддерживающих динамическую загрузку модулей отмечаются:
  • GeoIP (ngx_http_geoip_module),
  • Image-Filter (ngx_http_image_filter_module),
  • Mail (ngx_mail_{core, auth, imap, pop3, proxy, smtp}_module),
  • Stream (ngx_stream_{core, access, limit_conn, proxy, ssl, upstream}_module)
  • XSLT (ngx_http_xslt_module).
  • Perl (ngx_http_perl_module).
  • Интегрирован модуль stream с реализацией системы балансировки произвольных TCP- и UDP-соединений, позволяющей организовать проброс и распределение по нескольким узлам такого трафика, как обращения к СУБД, системам аутентификации, каталогам LDAP, RTMP-серверам, VoIP-системам, DNS-, syslog- или radius-серверам. Среди поддерживаемых методов балансировки: round-robin (круговой перебор, при котором соединения равномерно распределяются среди обработчиков), least-connections (запрос перенаправляется к менее нагруженному серверу), least_time (перенаправление на сервер, демонстрирующий наиболее высокую отзывчивость) и hash (перенаправление на основе хэша от определённого пользователем параметра, например, IP). Подробнее о новом модуле можно прочитать в анонсе открытия его исходных текстов;
  • Интегрирован модуль ngx_http_v2_module с поддержкой протокола HTTP/2. Поддержка протокола SPDY (ngx_http_spdy_module), методы которого легли в основу HTTP/2, удалена из состава nginx. С особенностями HTTP/2 можно познакомиться в тексте анонса интеграции HTTP/2 в кодовую базу nginx.
  • В состав включен модуль ngx_http_slice_module с реализацией фильтра, разбивающего запрос на подзапросы, каждый из которых возвращает определённую часть ответа, что может быть использовано для увеличения эффективности кэширования больших ответов;
  • Добавлена директива aio_write, управляющая применением AIO при записи файлов;
  • Добавлена директива «proxy_cache_convert_head», управляющая трансляцией метода HEAD в GET при кэшировании;
  • Добавлена директива zone в блок upstream, которая определяет зону разделяемой памяти, совместно используемую процессами-обработчиками);
  • В директиву «listen» добавлен параметр «reuseport», при указании которого сокет открывается с опцией SO_REUSEPORT, позволяющей сразу нескольким слушающим сокетам подключиться к одному порту для приёма соединений. Указанная технология позволяет упростить распределение обработчиков соединения по разным процессам, избавившись от отдельного звена, распределяющего запросы по рабочим процессам;
  • В директиве «worker_cpu_affinity» реализована поддержка более 64 CPU и добавлен новый параметр «auto», при указании которого привязка процессов-обработчиков к доступным CPU производится автоматически;
  • Реализована возможность одновременного использования нескольких директив «sub_filter»;
  • В директиве «sub_filter» обеспечена поддержка указания переменных в маске поиска замены.
  • Реализован параметр «nohostname» при настройке ведения логов через syslog;
  • В модуле ngx_http_realip_module реализована поддержка переменной $realip_remote_addr, содержащей оригинальный IP клиента;
  • Добавлена поддержка системного вызова pwritev();
  • Добавлена возможность использования директивы «include» в блоке «upstream»;
  • Добавлена переменная $upstream_connect_time, в которую записывается время отклика upstream-сервера;
  • В fastcgi.conf, fastcgi_params, scgi_params и uwsgi_params добавлен параметр REQUEST_SCHEME.
  • Добавлена опция «-T» для проверки файла конфигурации с выводом дампа текущей конфигурации;
  • Прекращена поддержка устаревших методов обработки соединений aio и rtsig;
  • По умолчанию отключена поддержка протокола SSLv3.

Источники[править]

Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Увидел свет HTTP-сервер nginx 1.10.0», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.