The OpenNET Project / Index page

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

Выпуск nginx 1.15.10 и njs 0.3.0

26.03.2019 20:47

Доступен выпуск основной ветки nginx 1.15.10, в рамках которой продолжается развитие новых возможностей (в параллельно поддерживаемой стабильной ветке 1.14 вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей).

Основные изменения:

  • При использовании имени хоста в директиве listen, nginx теперь создаёт listen-сокеты для всех адресов, соответствующих этому имени (в ранних версиях использовался только первый адрес);
  • В директиве listen появилась возможность указания диапазонов портов;
  • Добавлена возможность загрузки SSL-сертификатов и секретных ключей из переменных без использования промежуточных файлов;
  • Устранена проблема с не заполнением переменной $ssl_server_name при использовании OpenSSL 1.1.1;
  • Исправлена ошибка сборки nginx под Windows при использовании Visual Studio 2015 и новее.

Дополнительно можно отметить выпуск njs 0.3.0, интерпретатора языка JavaScript для веб-сервера nginx. Интерпретатор njs реализует стандарты ECMAScript и позволяет расширять возможности nginx по обработке запросов с помощью скриптов в конфигурации. Скрипты могут использоваться в файле конфигурации для определения расширенной логики обработки запросов, формирования конфигурации, динамической генерации ответа, модификации запроса/ответа или быстрого создания заглушек с решением проблем в web-приложениях. В новом выпуске njs добавлена поддержка модулей, определённых в спецификации ECMAScript 6. Также предложена новая директива js_path и реализована функция Object.prototype.propertyIsEnumerable().

  1. Главная ссылка к новости (http://mailman.nginx.org/piper...)
  2. OpenNews: Компания F5 Networks поглотила NGINX за 670 млн долларов
  3. OpenNews: Выпуск сервера приложений NGINX Unit 1.8 с поддержкой Java
  4. OpenNews: Выпуск nginx 1.15.9
  5. OpenNews: Релиз njs 0.2.5, интерпретатора JavaScript от NGINX
Автор новости: eRIC
Тип: Программы
Ключевые слова: njs, nginx
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (33) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Чёртик (?), 23:41, 26/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Что, они ещё один интерпретатор js родили? Уже ж есть отличный duktape (https://github.com/svaarala/duktape), spider monkey, libv8 на крайняк.
     
     
  • 2.2, аноннн (?), 23:59, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    им нужен не громоздкий, а узконаправленный, быстрый и встраиваемый интерпретатор, а не монстры
     
     
  • 3.23, Организация Объединённых Тюленей (?), 14:07, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    duktape, ЕМНИП, как раз для таких дел и предназначен.
     
  • 2.3, zzz (??), 00:18, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Про V8 Сысоев писал 9 лет назад, с тех пор ничего не поменялось http://sysoev.ru/prog/v8.html
     
  • 2.4, Алеша (?), 00:59, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот несколько же это нужно быть, ээмм... недалёким, что бы не понимать, что браузерный интерпретатор js, предназначенный обрабатывать в лучшем случае десятки запросов в секунду (и реально обрабатывающий единицы), это несколько иное, чем серверный, где их реально сотни тысяч и миллионы обрабатываются??
     
     
  • 3.5, Аноним (5), 01:10, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, ту же ноду докостылили до весьма приемлемых результатов.
     
     
  • 4.28, Аноним (28), 21:57, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    У ноды один контекст на все соединения, nginx же создает новый на каждое соединение.
     
  • 3.6, Аноним (6), 01:15, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    V8 на ноде норм обрабатывает запросы по 10K/c на ядро. Чем njs лучше?
     
     
  • 4.10, Аноним (10), 09:28, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    У них разные области применения. Судя по анонсу njs, там даже сборщика мусора нет.
     
  • 3.7, Аноним (7), 02:24, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    V8 в сотни раз быстрее njs будет.
     
     
  • 4.8, Аноним (8), 08:55, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ваша вера недостаточно крепка: V8 быстрее в тысячи раз!
     
     
  • 5.12, eRIC (ok), 09:43, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Ваша вера недостаточно крепка: V8 быстрее в тысячи раз!

    яблоки и бананы сравниваете.

    njs - это подмножество языка JavaScript, позволяющее расширить функциональность nginx. он никак не претендует на роль монстра V8. его задача, тупо сриптингом расширить функционал nginx. хочешь конфигурировать/функцию расширить nginx на лету при помощи JavaScript, пожалуйста используй.

    как это делают других продукты, но в основном там Lua используют:
    haproxy - расширяется при помощи Lua
    tarantool - расширяется при помощи Lua
    rspamd - расширяется при помощи Lua
    redis - С/C++/Lua/JavaScript
    .....
    .....
    .....

    ИМХО, я лично не сторонник njs и немного скептически отношусь.


     
     
  • 6.13, Алексей (??), 09:50, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    И для nginx тоже есть lua :)
     
     
  • 7.17, eRIC (ok), 12:10, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > И для nginx тоже есть lua :)

    да как отдельный сторонний модуль, а тут речь идет из коробки от самого производителя софта

     
  • 6.14, Аноним (8), 09:53, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Комментарий выше как бы намекает, что в исходном сообщении был представлен не анализ произодительности на основе статистики замеров, а исключительно предубеждение автора относительно разницы в произодительности.
     

  • 1.9, Ilya Indigo (ok), 09:15, 27/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А про модуль для PHP ни чего не слышно?
     
     
  • 2.11, eRIC (ok), 09:31, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > А про модуль для PHP ни чего не слышно?

    ? первый раз слышу, а для чего?

     
     
  • 3.15, Ilya Indigo (ok), 10:20, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> А про модуль для PHP ни чего не слышно?
    > ? первый раз слышу, а для чего?

    https://www.opennet.ru/opennews/art.shtml?num=49643
    Обещали, что он будет быстрее чем php-fpm.
    Очень интересна его судьба и прочие особенности.

     
     
  • 4.18, eRIC (ok), 12:14, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > https://www.opennet.ru/opennews/art.shtml?num=49643
    > Обещали, что он будет быстрее чем php-fpm.
    > Очень интересна его судьба и прочие особенности.

    сторонний модуль к nginx, не шупал и ничего не могу сказать. бенчмарки смотреть надо, да страница описывает разницу от обычного PHP:
    What's different with official php

        Global variable is unsafe in per request
        Static variable of a class is unsafe in per request
        Do not design singleton mode
        The native IO function works fine, but it slows down nginx


     
     
  • 5.20, Ilya Indigo (ok), 12:41, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Описание страшное.
    Благодарю!
     
  • 2.16, KonstantinB (ok), 12:09, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А зачем он вам?

    В nginx можно выполнять только неблокирующие операции. Любой условный mysql_query подвесит весь воркер nginx-а.

    Смысл подобных модулей в простейших неблокирующих обработчиках, для которых не хватает встроенных возможностей nginx. Например, полноценно распарсить Accept-Language и сделать соответствующий редирект (регулярками этого полноценно - в полном соответствии с RFC - не сделать). Эти 5-10 строк кода можно написать и на подмножестве js и на lua даже толком не зная этих языков.

    Если вам нужно "как fpm, только шустрее", посмотрите в сторону nginx unit.

     
     
  • 3.19, Ilya Indigo (ok), 12:28, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > А зачем он вам?

    Мне бы вообще-то как в Apache-event + PHP7-FastCGI, только по шустрее со статикой.

    > В nginx можно выполнять только неблокирующие операции. Любой условный mysql_query подвесит
    > весь воркер nginx-а.
    > Смысл подобных модулей в простейших неблокирующих обработчиках, для которых не хватает
    > встроенных возможностей nginx.

    То есть он вообще не замена nginx + php-fpm?

    Благодарю, nginx unit, взял на заметку.

    P.S. А nginx unit точно шустрее nginx + php-fpm?
    Судя по его описанию и назначению - это комбайн с кучей поддерживаемых языков, но про шустрость и речи нигде не шло?

     
     
  • 4.21, eRIC (ok), 13:28, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > P.S. А nginx unit точно шустрее nginx + php-fpm?
    > Судя по его описанию и назначению - это комбайн с кучей поддерживаемых
    > языков, но про шустрость и речи нигде не шло?

    unit с приложением php = nginx + php-fpm, разница в том что в unit нет деление сервера и отдельного стороннего запущенного php-fpm. php приложение в unit выполняется в отдельном своем контексте без обращения к отдельно запущеного php-fpm демона. таких приложений может быть куча, и каждый вариться в своем казане и не мешает друг другу.

    касательно бенчмарка, нужно производить замеры и смотреть. unit по сути еще зеленый продукт, который постепенно развивается

     
     
  • 5.22, Ilya Indigo (ok), 13:39, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Благодарю Вас за подробный ответ! :-)
     
  • 4.29, KonstantinB (ok), 10:06, 28/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Суть nginx unit в том, что обмен данными между приложением и сервером происходит через shared memory, что несколько быстрее, чем гонять через сокеты.

    Сам PHP от этого быстрее, конечно, не станет. :-)

    А для статики лучше всего выделить отдельный IP-адрес и субдомен. Впрочем, если у вас нагрузки не как у Фейсбука, лишнего проксирования вы и не заметите (но тогда и со схемой nginx+php-fpm тоже все нормально должно быть).

     
     
  • 5.30, Ilya Indigo (ok), 10:42, 28/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Суть nginx unit в том, что обмен данными между приложением и сервером
    > происходит через shared memory, что несколько быстрее, чем гонять через сокеты.

    Благодарю за ответ, буду пробовать!

    > Сам PHP от этого быстрее, конечно, не станет. :-)

    PHP7 уже давным давно не является узким местом в быстродействии веб-приложений.

    > А для статики лучше всего выделить отдельный IP-адрес и субдомен.

    Под статикой я имею ввиду, не только отдельные документы (html, css, js, jpg), но и когда выключен режим PHP (закрыт тег ?>), и я отдаю чистый HTML.
    Отделить строго статику, я даже не понимаю как, возможно это и не возможно.
    Например загружаемые пользователями картинки, которые отдаваться будут через Apache/nxinx.
    С одной стороны это статика, но с другой она должна быть на том же сервере, где и динамика, так нужно иметь возможность загружать и удалять их.
    В некоторых JS должны быть определены константы и объекты, через PHP (ID, флаг владельца, языковой словарь, разные списки).

    > у вас нагрузки не как у Фейсбука, лишнего проксирования вы и
    > не заметите (но тогда и со схемой nginx+php-fpm тоже все нормально
    > должно быть).

    Да у меня и с Apache-event/php-FastCGI всё нормально, просто знаю, что nginx лучше использует ресурсы сервера, и от него можно добиться больше при минимальных затратах (сменить apache на nginx, но не делать отдельный сервер для статики) (даже если пока это не нужно).

     

  • 1.24, robot228 (?), 15:44, 27/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Посоветуйте вводную литературу по изучению NGINX.
     
     
  • 2.25, Andrey Mitrofanov (?), 16:41, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > Посоветуйте вводную литературу по изучению NGINX.

    REAMDE.

     
  • 2.27, eRIC (ok), 20:24, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Посоветуйте вводную литературу по изучению NGINX.

    https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-ope

     

  • 1.26, Аноним (26), 19:31, 27/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    есть же lua, js не нужен
     
  • 1.31, тигар (ok), 23:06, 28/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    ладно, а вебинар кто-нить наблюдал? чего будет с nginx теперь, после того как их ф5 купили?
    Раньше Emily Turner все рассказывала как при помощи nginx можно избавиться от F5 Big-IP.. А потом вот нежданчик:\
     
     
  • 2.32, eRIC (ok), 08:36, 29/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > ладно, а вебинар кто-нить наблюдал? чего будет с nginx теперь, после того
    > как их ф5 купили?

    https://www.youtube.com/watch?v=E5AZ7T5OykU

     
  • 2.33, Andrey Mitrofanov (?), 09:24, 29/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > чего будет с nginx теперь,

    Вот!!  Это правильный вопрос....

    >после того
    > как их ф5 купили?

    ...который надо было задать, когда они инкорпарировались, набирали эффективных и отдел продаж-маркетинга, выпускали _акции_.


    18.07.2011 22:28  Игорь Сысоев объявил о создании компании, которая займется развитием nginx
      --https://www.opennet.ru/opennews/art.shtml?num=31224

    11.10.2011 21:01  Проект Nginx получил $3 млн инвестиций и начал переход к модели Open Core (дополнено)
      --https://www.opennet.ru/opennews/art.shtml?num=32009

    130 [12.10.2011] Подробности о развитии Nginx в руках коммерческой компании

    128 [05.01.2012] Nginx обогнал Microsoft IIS по числу обслуживаемых активных сайтов

    10.04.2013 09:48  Новым руководителем Nginx Inc стал бывший вице-президент Red Hat
      --https://www.opennet.ru/opennews/art.shtml?num=36644

    112 [27.04.2013] Проект nginx перешёл с использования Subversion на Mercurial

    106 [22.08.2013] Nginx выпускает коммерческую версию - Nginx Plus

    104 [18.10.2013] Проект Nginx получил инвестиции в размере 10 млн долларов

    96 [28.08.2014] Nginx удалён из базовой поставки OpenBSD

    93 [10.12.2014] Разработчики nginx получили ещё 20 млн. долларов инвестиций

    [U]2 [12.03.2019] Компания F5 Networks поглотила NGINX за 670 млн долларов[/U]

    [I]Спасибо https://www.opennet.ru/keywords/nginx.html за предоставленные.[/I]

    > Раньше Emily Turner все рассказывала как при помощи nginx можно избавиться от
    > F5 Big-IP.. А потом вот нежданчик:\

    Эффективные нашли эффективный способ продаться.  Job well done[I]!

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



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

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