The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз http-сервера nginx 1.8.0

21.04.2015 22:46

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

В соответствии с апрельским отчетом компании Netcraft nginx используется на 14.24% (год назад 14.22%, два года назад 12.96%) всех активных сайтов, что соответствует второму месту по популярности в данной категории (доля Apache соответствует 50.91%, а Microsoft IIS - 10.95%). Доля nginx среди всех сайтов составляет 14.87% (год назад 15.25%), среди миллиона самых посещаемых сайтов в мире - 21.43% (год назад 17.82%). В настоящее время под управлением nginx работает около 126 млн сайтов (год назад 146 млн, два года назад - 96.1 млн). По данным W3Techs 23.8% из миллиона самых посещаемых сайтов в мире используют nginx, в апреле прошлого года этот показатель составлял 20.4%. В России nginx используется на 71.3% самых посещаемых сайтов (год назад - 68.6%).

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

  • Возможность выноса операций с файлами в отдельный пул потоков, что позволяет избавиться от блокирования рабочего процесса при выполнении операций чтения и отправки файлов. Число нитей в пуле потоков задаётся директивой thread_pool. Выборочная активация пула потоков для отдельных путей производится директивой "aio threads". Для работы пула потоков nginx должен быть собран с опцией "--with-threads";
  • Экспериментальный API для создания фильтров тела запроса;
  • Поддержка буферизации тела транзитных запросов, при включении которой тело запроса вначале полностью читается от клиента, а потом отправляется для дальнейшей обработки (без буферизации запрос начинает передаваться сразу). Для включения буферизации представлены директивы proxy_request_buffering, fastcgi_request_buffering, scgi_request_buffering и uwsgi_request_buffering;
  • Возможность проверки клиентских SSL-сертификатов в почтовом прокси и проверки в ngx_http_proxy_module проксированных серверных сертификатов, полученных от бэкендов;
  • Объявлен устаревшим параметр "sendfile" директивы "aio". Отныне nginx автоматически использует AIO для предварительной загрузки данных для sendfile, если указаны директивы "aio" и "sendfile";
  • В блок конфигурации upstream добавлена поддержка директивы "hash", предназначенной для организации балансировки нагрузки с привязкой клиента к серверу.

  • Возможность перенаправления в syslog логов, настраиваемых через директивы "error_log" и "access_log".
  • Добавлена директива ssl_password_file для определения файла с паролями от секретных ключей;
  • Новые директивы управления таймаутами и числом повторных попыток при обращении к upstream:

    • proxy_next_upstream_tries, proxy_next_upstream_timeout,
    • fastcgi_next_upstream_tries, fastcgi_next_upstream_timeout,
    • memcached_next_upstream_tries, memcached_next_upstream_timeout,
    • scgi_next_upstream_tries, scgi_next_upstream_timeout,
    • uwsgi_next_upstream_tries и uwsgi_next_upstream_timeout.
  • Новые директивы для принудительного включения byte ranges для прокэшированных и не кэшируемых ответов, назависимо от выставленных бэкендом заголовков: proxy_force_ranges, fastcgi_force_ranges, scgi_force_ranges и uwsgi_force_ranges.
  • Новые директивы для ограничения скорости чтения данных (лимит задаётся в байтах в секунду): proxy_limit_rate, fastcgi_limit_rate, scgi_limit_rate и uwsgi_limit_rate;
  • Новая директива autoindex_format, позволяющая выбрать формат (html, xml, json и jsonp) вывода списка элементов директории;
  • Новые директивы proxy_ssl_certificate, proxy_ssl_certificate_key, proxy_ssl_password_file, uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и uwsgi_ssl_password_file;
  • В случае истечения таймаута proxy_cache_lock_timeout осуществляется отправка запроса к бэкенду без применения кэширования. Для управления временем принудительного снятия блокировки и повтора попыток кэширования добавлены директивы proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и uwsgi_cache_lock_age;

  • Поддержка переменных "$upstream_cookie_{имя}" и "$ssl_client_fingerprint";
  • Поддержка нового параметра always в директиве add_header;
  • Поддержка переменных в директивах expires, proxy_cache, fastcgi_cache, scgi_cache и uwsgi_cache;
  • Поддержка загрузки секретных ключей с аппаратных токенов при помощи движков OpenSSL;
  • Налажено использование директив proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass внутри блоков "if" и "limit_except";
  • В директивы "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" и "uwsgi_cache_path" добавлена поддержка параметра "use_temp_path", через который можно определить отдельную директорию для временных файлов;
  • Добавлена переменная $upstream_header_time, в которой сохраняется время получения заголовков от upstream-сервера;
  • В директивах limit_conn_zone и limit_req_zone можно использовать комбинации из нескольких переменных;

  • Для SPDY-соединений и SSL-соединений с бэкендами реализована возможность использования директивы tcp_nodelay;
  • При включенном кэширования бэкенду теперь передается содержимое HTTP-загловков "If-Modified-Since", "If-Range" и т.п, если заведомо известно, что ответ не будет прокэширован (например, при указании proxy_cache_min_uses);
  • В ситуации переполнения диска, nginx снижает интенсивность вывода ошибок в лог до одной записи в секунду;
  • Прекращена поддержка устаревшей директивы limit_zone;
  • Использование директивы log_format ограничено только уровнем HTTP.
  • Изменён метод экранирования символов в URI (используются шестнадцатеричные цифры в верхнем регистре;
  • Поддержка сборки с библиотеками BoringSSL и LibreSSL (форки OpenSSL от Google и OpenBSD);
  • Поддержка сборки с Си-библиотекой musl;
  • Реализован механизм дефрагментации свободных блоков разделяемой памяти.


  1. Главная ссылка к новости (http://mailman.nginx.org/piper...)
  2. OpenNews: Для nginx подготовлен балансировщик TCP-соединений
  3. OpenNews: Разработчики nginx получили ещё 20 млн. долларов инвестиций
  4. OpenNews: Релиз http-сервера nginx 1.6.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/42082-nginx
Ключевые слова: nginx
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (18) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, SpiritOfStallman (ok), 23:19, 21/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Поддержка сборки с Си-библиотекой musl;

    А вот это не в бровь а в глаз! Отличная новость.
    PS: уже не смешно, но только вчера собирал и разливал 1.6.3; как знал что нужно было полениться еще пару деньков :)

     
     
  • 2.3, Рудвульф (?), 07:45, 22/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Прошу прощенья за глупый вопрос, а что это дает?
     
     
  • 3.4, Аноним (-), 08:01, 22/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    +9000 к ЧВС
     
     
  • 4.7, Andrey Mitrofanov (?), 09:45, 22/04/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > +9000 к ЧВС

    +100500 к неуловимости!

     
     
  • 5.27, Andrey Mitrofanov (?), 09:56, 26/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> +9000 к ЧВС
    > +100500 к неуловимости!

    Пишу замену nginx на gawk-е, "Когда будет готов покажу код"(с) libv, под gplv3+. Ждите анонса о сборе пожертвований.

     
  • 3.9, SpiritOfStallman (ok), 13:58, 22/04/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >Прошу прощенья за глупый вопрос, а что это дает?

    Это вопрос к musl'у или сборке через красноглазие?

    Если о втором, то я работаю на разработке эмбэдщины с своими задачами. В число последних входит и сервис с использованием nginx'а. Собирать софт нужно ручками, опакечивать и разливать апдейтами для клиентов. Ну а с тем что железки не i386/amd64, иногда сборка это дело не тривиальное, и не всегда доставляющее удовольствие.

    PS: ну и да, +9000 к ЧВС и +100500 к неуловимости

     
     
  • 4.25, Аноним (-), 16:32, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А что за железо? Какие проц и память?
     

  • 1.2, racchok (?), 01:13, 22/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >> fastcgi_next_upstream_tries, fastcgi_next_upstream_timeout

    хорошо можно выкинуть прослойку с haproxy

     
  • 1.5, Аноним (-), 09:11, 22/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что теперь вместо limit_zone?
     
     
  • 2.6, Аноним (-), 09:13, 22/04/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    limit_conn_zone
     

  • 1.8, Xasd (ok), 13:21, 22/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    поддержка http/2 -- есть там теперь?
     
     
  • 2.12, Я (??), 15:51, 22/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В конце года обещали.
     
  • 2.17, Аноним (-), 16:14, 22/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Пока нет, только SPDY. Обещают к концу года поддержку HTTP/2 по спецификации сделать.
     

  • 1.10, Аноним (-), 14:00, 22/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Возможность перенаправления в syslog логов, настраиваемых через директивы "error_log" и "access_log".

    Ну наконец-то.

     
     
  • 2.18, Аноним (-), 17:20, 22/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> Возможность перенаправления в syslog логов, настраиваемых через директивы "error_log" и "access_log".
    > Ну наконец-то.

    Ну а чо, в каждой второй ОС, от RHEL до OpenBSD, в итоге впиливали свою реализацию...

     

  • 1.28, tehnikpc (ok), 12:01, 26/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Для обычных пользователей

    Для системных администраторов. Не путайте их с обычными ламерами.

     
  • 1.29, Иван (??), 18:50, 06/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    dhtrhdddddddddddddddddddd
     
  • 1.30, Аноним (30), 02:13, 10/09/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    привет

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру