URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 116926
[ Назад ]

Исходное сообщение
"Выпуск nginx 1.15.10 и njs 0.3.0"

Отправлено opennews , 26-Мрт-19 23:41 
Доступен (http://mailman.nginx.org/pipermail/nginx-announce/2019/00023...) выпуск основной ветки nginx 1.15.10 (http://nginx.org), в рамках которой продолжается развитие новых возможностей (в параллельно поддерживаемой стабильной ветке 1.14 (https://www.opennet.me/opennews/art.shtml?num=48454) вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей).


Основные изменения (http://nginx.org/en/CHANGES):


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


Дополнительно можно отметить выпуск (http://mailman.nginx.org/pipermail/nginx/2019-March/057707.html) njs 0.3.0 (http://nginx.org/en/docs/njs/), интерпретатора языка JavaScript для веб-сервера nginx. Интерпретатор njs реализует стандарты ECMAScript и позволяет расширять возможности nginx по обработке запросов с помощью скриптов в конфигурации. Скрипты могут использоваться в файле конфигурации для определения расширенной логики обработки запросов, формирования конфигурации, динамической генерации ответа, модификации запроса/ответа или быстрого создания заглушек с решением проблем в web-приложениях. В новом выпуске njs добавлена (http://nginx.org/en/docs/njs/changes.html#njs0.3.0) поддержка модулей, определённых в спецификации ECMAScript 6 (https://www.opennet.me/opennews/art.shtml?num=42450). Также предложена новая директива js_path и реализована функция  Object.prototype.propertyIsEnumerable().

URL: http://mailman.nginx.org/pipermail/nginx-announce/2019/00023...
Новость: https://www.opennet.me/opennews/art.shtml?num=50396


Содержание

Сообщения в этом обсуждении
"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Чёртик , 26-Мрт-19 23:41 
Что, они ещё один интерпретатор js родили? Уже ж есть отличный duktape (https://github.com/svaarala/duktape), spider monkey, libv8 на крайняк.

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено аноннн , 26-Мрт-19 23:59 
им нужен не громоздкий, а узконаправленный, быстрый и встраиваемый интерпретатор, а не монстры

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Организация Объединённых Тюленей , 27-Мрт-19 14:07 
duktape, ЕМНИП, как раз для таких дел и предназначен.

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено zzz , 27-Мрт-19 00:18 
Про V8 Сысоев писал 9 лет назад, с тех пор ничего не поменялось http://sysoev.ru/prog/v8.html

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Алеша , 27-Мрт-19 00:59 
Вот несколько же это нужно быть, ээмм... недалёким, что бы не понимать, что браузерный интерпретатор js, предназначенный обрабатывать в лучшем случае десятки запросов в секунду (и реально обрабатывающий единицы), это несколько иное, чем серверный, где их реально сотни тысяч и миллионы обрабатываются??

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Аноним , 27-Мрт-19 01:10 
Ну, ту же ноду докостылили до весьма приемлемых результатов.

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Аноним , 27-Мрт-19 21:57 
У ноды один контекст на все соединения, nginx же создает новый на каждое соединение.

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Аноним , 27-Мрт-19 01:15 
V8 на ноде норм обрабатывает запросы по 10K/c на ядро. Чем njs лучше?

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Аноним , 27-Мрт-19 09:28 
У них разные области применения. Судя по анонсу njs, там даже сборщика мусора нет.

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Аноним , 27-Мрт-19 02:24 
V8 в сотни раз быстрее njs будет.

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Аноним , 27-Мрт-19 08:55 
Ваша вера недостаточно крепка: V8 быстрее в тысячи раз!

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено eRIC , 27-Мрт-19 09:43 
> Ваша вера недостаточно крепка: V8 быстрее в тысячи раз!

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

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

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

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



"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Алексей , 27-Мрт-19 09:50 
И для nginx тоже есть lua :)

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено eRIC , 27-Мрт-19 12:10 
> И для nginx тоже есть lua :)

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


"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Аноним , 27-Мрт-19 09:53 
Комментарий выше как бы намекает, что в исходном сообщении был представлен не анализ произодительности на основе статистики замеров, а исключительно предубеждение автора относительно разницы в произодительности.

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Ilya Indigo , 27-Мрт-19 09:15 
А про модуль для PHP ни чего не слышно?

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено eRIC , 27-Мрт-19 09:31 
> А про модуль для PHP ни чего не слышно?

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


"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Ilya Indigo , 27-Мрт-19 10:20 
>> А про модуль для PHP ни чего не слышно?
> ? первый раз слышу, а для чего?

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


"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено eRIC , 27-Мрт-19 12:14 
> https://www.opennet.me/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



"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Ilya Indigo , 27-Мрт-19 12:41 
Описание страшное.
Благодарю!

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено KonstantinB , 27-Мрт-19 12:09 
А зачем он вам?

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

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

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


"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Ilya Indigo , 27-Мрт-19 12:28 
> А зачем он вам?

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

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

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

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

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


"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено eRIC , 27-Мрт-19 13:28 
> P.S. А nginx unit точно шустрее nginx + php-fpm?
> Судя по его описанию и назначению - это комбайн с кучей поддерживаемых
> языков, но про шустрость и речи нигде не шло?

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

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


"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Ilya Indigo , 27-Мрт-19 13:39 
Благодарю Вас за подробный ответ! :-)

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено KonstantinB , 28-Мрт-19 10:06 
Суть nginx unit в том, что обмен данными между приложением и сервером происходит через shared memory, что несколько быстрее, чем гонять через сокеты.

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

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


"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Ilya Indigo , 28-Мрт-19 10:42 
> Суть 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, но не делать отдельный сервер для статики) (даже если пока это не нужно).


"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено robot228 , 27-Мрт-19 15:44 
Посоветуйте вводную литературу по изучению NGINX.

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Andrey Mitrofanov , 27-Мрт-19 16:41 
> Посоветуйте вводную литературу по изучению NGINX.

REAMDE.


"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено eRIC , 27-Мрт-19 20:24 
> Посоветуйте вводную литературу по изучению NGINX.

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


"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Аноним , 27-Мрт-19 19:31 
есть же lua, js не нужен

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено тигар , 28-Мрт-19 23:06 
ладно, а вебинар кто-нить наблюдал? чего будет с nginx теперь, после того как их ф5 купили?
Раньше Emily Turner все рассказывала как при помощи nginx можно избавиться от F5 Big-IP.. А потом вот нежданчик:\

"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено eRIC , 29-Мрт-19 08:36 
> ладно, а вебинар кто-нить наблюдал? чего будет с nginx теперь, после того
> как их ф5 купили?

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


"Выпуск nginx 1.15.10 и njs 0.3.0"
Отправлено Andrey Mitrofanov , 29-Мрт-19 09:24 
> чего будет с nginx теперь,

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

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

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


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

11.10.2011 21:01  Проект Nginx получил $3 млн инвестиций и начал переход к модели Open Core (дополнено)
  --https://www.opennet.me/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.me/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.me/keywords/nginx.html за предоставленные.[/I]

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

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