Доступен (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
Что, они ещё один интерпретатор js родили? Уже ж есть отличный duktape (https://github.com/svaarala/duktape), spider monkey, libv8 на крайняк.
им нужен не громоздкий, а узконаправленный, быстрый и встраиваемый интерпретатор, а не монстры
duktape, ЕМНИП, как раз для таких дел и предназначен.
Про V8 Сысоев писал 9 лет назад, с тех пор ничего не поменялось http://sysoev.ru/prog/v8.html
Вот несколько же это нужно быть, ээмм... недалёким, что бы не понимать, что браузерный интерпретатор js, предназначенный обрабатывать в лучшем случае десятки запросов в секунду (и реально обрабатывающий единицы), это несколько иное, чем серверный, где их реально сотни тысяч и миллионы обрабатываются??
Ну, ту же ноду докостылили до весьма приемлемых результатов.
У ноды один контекст на все соединения, nginx же создает новый на каждое соединение.
V8 на ноде норм обрабатывает запросы по 10K/c на ядро. Чем njs лучше?
У них разные области применения. Судя по анонсу njs, там даже сборщика мусора нет.
V8 в сотни раз быстрее njs будет.
Ваша вера недостаточно крепка: V8 быстрее в тысячи раз!
> Ваша вера недостаточно крепка: V8 быстрее в тысячи раз!яблоки и бананы сравниваете.
njs - это подмножество языка JavaScript, позволяющее расширить функциональность nginx. он никак не претендует на роль монстра V8. его задача, тупо сриптингом расширить функционал nginx. хочешь конфигурировать/функцию расширить nginx на лету при помощи JavaScript, пожалуйста используй.
как это делают других продукты, но в основном там Lua используют:
haproxy - расширяется при помощи Lua
tarantool - расширяется при помощи Lua
rspamd - расширяется при помощи Lua
redis - С/C++/Lua/JavaScript
.....
.....
.....ИМХО, я лично не сторонник njs и немного скептически отношусь.
И для nginx тоже есть lua :)
> И для nginx тоже есть lua :)да как отдельный сторонний модуль, а тут речь идет из коробки от самого производителя софта
Комментарий выше как бы намекает, что в исходном сообщении был представлен не анализ произодительности на основе статистики замеров, а исключительно предубеждение автора относительно разницы в произодительности.
А про модуль для PHP ни чего не слышно?
> А про модуль для PHP ни чего не слышно?? первый раз слышу, а для чего?
>> А про модуль для PHP ни чего не слышно?
> ? первый раз слышу, а для чего?https://www.opennet.me/opennews/art.shtml?num=49643
Обещали, что он будет быстрее чем php-fpm.
Очень интересна его судьба и прочие особенности.
> https://www.opennet.me/opennews/art.shtml?num=49643
> Обещали, что он будет быстрее чем php-fpm.
> Очень интересна его судьба и прочие особенности.сторонний модуль к nginx, не шупал и ничего не могу сказать. бенчмарки смотреть надо, да страница описывает разницу от обычного PHP:
What's different with official phpGlobal 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 можно выполнять только неблокирующие операции. Любой условный mysql_query подвесит весь воркер nginx-а.
Смысл подобных модулей в простейших неблокирующих обработчиках, для которых не хватает встроенных возможностей nginx. Например, полноценно распарсить Accept-Language и сделать соответствующий редирект (регулярками этого полноценно - в полном соответствии с RFC - не сделать). Эти 5-10 строк кода можно написать и на подмножестве js и на lua даже толком не зная этих языков.
Если вам нужно "как fpm, только шустрее", посмотрите в сторону nginx unit.
> А зачем он вам?Мне бы вообще-то как в Apache-event + PHP7-FastCGI, только по шустрее со статикой.
> В nginx можно выполнять только неблокирующие операции. Любой условный mysql_query подвесит
> весь воркер nginx-а.
> Смысл подобных модулей в простейших неблокирующих обработчиках, для которых не хватает
> встроенных возможностей nginx.То есть он вообще не замена nginx + php-fpm?
Благодарю, nginx unit, взял на заметку.
P.S. А nginx unit точно шустрее nginx + php-fpm?
Судя по его описанию и назначению - это комбайн с кучей поддерживаемых языков, но про шустрость и речи нигде не шло?
> P.S. А nginx unit точно шустрее nginx + php-fpm?
> Судя по его описанию и назначению - это комбайн с кучей поддерживаемых
> языков, но про шустрость и речи нигде не шло?unit с приложением php = nginx + php-fpm, разница в том что в unit нет деление сервера и отдельного стороннего запущенного php-fpm. php приложение в unit выполняется в отдельном своем контексте без обращения к отдельно запущеного php-fpm демона. таких приложений может быть куча, и каждый вариться в своем казане и не мешает друг другу.
касательно бенчмарка, нужно производить замеры и смотреть. unit по сути еще зеленый продукт, который постепенно развивается
Благодарю Вас за подробный ответ! :-)
Суть nginx unit в том, что обмен данными между приложением и сервером происходит через shared memory, что несколько быстрее, чем гонять через сокеты.Сам PHP от этого быстрее, конечно, не станет. :-)
А для статики лучше всего выделить отдельный IP-адрес и субдомен. Впрочем, если у вас нагрузки не как у Фейсбука, лишнего проксирования вы и не заметите (но тогда и со схемой nginx+php-fpm тоже все нормально должно быть).
> Суть 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.
> Посоветуйте вводную литературу по изучению NGINX.REAMDE.
> Посоветуйте вводную литературу по изучению NGINX.https://docs.nginx.com/nginx/admin-guide/installing-nginx/in.../
есть же lua, js не нужен
ладно, а вебинар кто-нить наблюдал? чего будет с nginx теперь, после того как их ф5 купили?
Раньше Emily Turner все рассказывала как при помощи nginx можно избавиться от F5 Big-IP.. А потом вот нежданчик:\
> ладно, а вебинар кто-нить наблюдал? чего будет с nginx теперь, после того
> как их ф5 купили?https://www.youtube.com/watch?v=E5AZ7T5OykU
> чего будет с nginx теперь,Вот!! Это правильный вопрос....
>после того
> как их ф5 купили?...который надо было задать, когда они инкорпарировались, набирали эффективных и отдел продаж-маркетинга, выпускали _акции_.
18.07.2011 22:28 Игорь Сысоев объявил о создании компании, которая займется развитием nginx
--https://www.opennet.me/opennews/art.shtml?num=3122411.10.2011 21:01 Проект Nginx получил $3 млн инвестиций и начал переход к модели Open Core (дополнено)
--https://www.opennet.me/opennews/art.shtml?num=32009130 [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=36644112 [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]!