The OpenNET Project / Index page

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



"Выпуск nginx 1.17.0 и njs 0.3.2 "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск nginx 1.17.0 и njs 0.3.2 "  +/
Сообщение от opennews (?), 21-Май-19, 22:26 
Представлен (http://mailman.nginx.org/pipermail/nginx-announce/2019/00024...) первый выпуск новой основной ветки nginx 1.17 (http://nginx.org), в рамках которой будет продолжено развитие новых возможностей (в параллельно поддерживаемой стабильной ветке 1.16 (https://www.opennet.ru/opennews/art.shtml?num=50561) вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей).

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


-  Добавлена поддержка переменных в директивах  "limit_rate" и "limit_rate_after", а также в директивах "proxy_upload_rate" и
       "proxy_download_rate" модуля stream;
-  Повышены требования к минимально поддерживаемой версии OpenSSL - 0.9.8;

-  По умолчанию обеспечена сборка модуля ngx_http_postpone_filter_module;
-  Решены проблемы с неработой директивы "include" внутри блоков "if" и   "limit_except";
-  Исправлена ошибка при обработке байтовых значений "Range (https://tools.ietf.org/html/rfc7233)".


Из  значительных улучшений, которые ожидаются в ветке 1.17, упоминается реализация поддержки протоколов QUIC и HTTP/3 (https://www.opennet.ru/opennews/art.shtml?num=49594).

Дополнительно можно отметить выпуск (http://mailman.nginx.org/pipermail/nginx-announce/2019/00024...) njs 0.3.2, интерпретатора языка JavaScript для веб-сервера nginx. Интерпретатор njs реализует стандарты ECMAScript и позволяет расширять возможности nginx по обработке запросов с помощью скриптов в конфигурации. Скрипты могут использоваться в файле конфигурации для определения расширенной логики обработки запросов, формирования конфигурации, динамической генерации ответа, модификации запроса/ответа или быстрого создания заглушек с решением проблем в web-приложениях.


В новом выпуске njs добавлена поддержка шаблонов строк, определённых в спецификации ECMAScript 6 (https://www.opennet.ru/opennews/art.shtml?num=42450). Шаблоны строк являются строковыми литералами, допускающими встраивание выражений. Выражения определяются в размещённом внутри строки блоке ${...}, который может включать как отдельные переменные (${name}), так и выражения (${5 + a + b})). Кроме того, добавлена поддержка  именованных групп в объекте RegExp,  позволяющих связать сопоставленные регулярным выражением части строки с определёнными именами вместо порядковых номеров совпадений. Добавлена поддержка сборки с библитекой GNU Readline.

URL: https://www.nginx.com/blog/nginx-1-16-1-17-released/
Новость: https://www.opennet.ru/opennews/art.shtml?num=50718

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +/
Сообщение от Ъ (?), 21-Май-19, 22:26 
С точки зрения производительности и потребления ресурсов, что лучше - встроенный Lua или JS?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Выпуск nginx 1.17.0 и njs 0.3.2 "  –10 +/
Сообщение от Кампуча (?), 21-Май-19, 22:31 
LUA - это сторонний модуль сторонних разработчиков. njs - модуль от авторов, выводы делай сам. (njs выигрывает, такой должен быть вывод)
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +12 +/
Сообщение от Evgeny Orlovemail (?), 21-Май-19, 22:53 
Lua + nginx это уже openresty. он архитектурно идет немного в разрез с nginx. Но в целом свою задачу решает.
njs быстрый потому что поддерживает только основные элементы ECMAScript и интерпретатором выступает не v8, а самописный движок заделанный под экосистему nginx
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +6 +/
Сообщение от KonstantinB (ok), 21-Май-19, 23:26 
Не думаю, что вы заметите разницу, если вы не Фейсбук. Но вообще njs должен быть пошустрее, поскольку теснее интегрирован.

А вообще, lua-модуль - это причина, по которой в nginx стали делать njs. В lua-модуле используется ряд костылей для интеграции с nginx, типа залезания во внутренние API и структуры nginx-а, неизменность которых никто никогда не гарантировал, но ввиду популярности lua-модуля в том числе и у коммерческих пользователей они вынуждены поддерживать совместимость nginx (в том числе nginx-plus) с lua-модулем (или самостоятельно патчить его под новые версии). В какой-то момент им это все явно поднадоело.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +/
Сообщение от Аноним (5), 21-Май-19, 23:54 
поскольку ни в том ни в другом нет jit, а схема работы в них одинаковая - существенной разницы не может быть (до тех пор пока они используются по назначению).
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

6. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +2 +/
Сообщение от Аноним (6), 22-Май-19, 01:45 
Подозреваю, что для типичного применения в 2-3 строки кода от jit-а будет больше вреда, чем пользы.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +/
Сообщение от Аноним (8), 22-Май-19, 10:34 
А почему нельзя сделать так, чтобы jit работал только когда быстрее?
Чёто типа уровня оптимизации. И почему низя кэшировать результаты?
Эта жаба не кэшируит (кажется). (хотя у неё уже на входе бинарный код для машины) И при каждом новом запуске она делает одну и ту же работу по оптимизации того же кода (вроде).
И меня раздражает, что она так долго запускает программы.
Почему нельзя запускать их в первом уровне оптимизации (быстро), а потом уже в отдельном потоке щитать? (И чем больше вызывается код - тем лучше его оптимизировать, например).
Но ведь jvm делают не дураки (а вот я - дурак), им что то мешает?
Почему нельзя ВСЁ закешировать???
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

10. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +/
Сообщение от Аноним (10), 22-Май-19, 11:30 
> Почему нельзя запускать их в первом уровне оптимизации (быстро), а потом уже в отдельном потоке щитать?

В web js-ных движках так и сделано.
А вот Java в её мире запускается один раз в неделю (месяц, год, 10 лет?) и работает, работает, работает. При таком подходе вообще глубоко фиолетово, сколько времени оно запускается. И за такое время работы накапливается статистика запуска функций огого.

>  (И чем больше вызывается код - тем лучше его оптимизировать, например).

Гляньте, например, параметр XX:CompileThreshold (дефолт 10000).

Вообще, в Яве я профан. Так что оправьте, если что.
Всё это похоже на, так сказать, серверный профиль использования. И что там на декстопе прога запускается и закрывается каждые 10 минут - ну ой. Может, так есть какой-то "десктопный" профиль.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

15. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +/
Сообщение от KonstantinB (ok), 22-Май-19, 21:42 
> А почему нельзя сделать так, чтобы jit работал только когда быстрее?

Потому что если вы хотите засунуть программу в 100 000 строк кода в nginx, вы не должны этого хотеть. Пишите на nodejs и проксируйте на него (или используйте nginx unit).

Nginx - не application server. Назначение этих модулей - реализация конфигураций, для которых не хватает встроенных возможностей nginx, а на таких микроскопических объемах кода от JIT-а никогда не будет особого толку. Если и будет, то недалеко от погрешности измерения.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

7. "Выпуск nginx 1.17.0 и njs 0.3.2 "  –1 +/
Сообщение от hand (?), 22-Май-19, 09:10 
есть lua jit
https://openresty.org/en/luajit.html
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

14. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +1 +/
Сообщение от irinat (ok), 22-Май-19, 16:47 
> ни в том ни в другом нет jit

Lua-модуль для Nginx проектировался под LuaJIT, хоть и с поддержкой Lua 5.1. Не знаю, зачем им поддержка Lua 5.1, потому что даже в режиме интерпретатора LuaJIT быстрее.


Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

17. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +/
Сообщение от Аноним (17), 23-Май-19, 18:12 
>поскольку ни в том ни в другом нет jit

Вообще-то в lua-nginx-module как раз LuaJIT используется

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

9. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +/
Сообщение от Аноним (-), 22-Май-19, 10:56 
QUIC http/3 в какой версии ожидается?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Выпуск nginx 1.17.0 и njs 0.3.2 "  –3 +/
Сообщение от Аноним (11), 22-Май-19, 11:51 
Надеюсь, что никогда.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

12. "Выпуск nginx 1.17.0 и njs 0.3.2 "  –1 +/
Сообщение от Ан.Зонд (?), 22-Май-19, 13:49 
Товарищ мамакин майор как вам не стыдно?
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +/
Сообщение от гуглезила (?), 22-Май-19, 16:31 
а не будете делать что велим - отключим газ...то есть гугль...то есть интернет вообще.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

16. "Выпуск nginx 1.17.0 и njs 0.3.2 "  +/
Сообщение от KonstantinB (ok), 22-Май-19, 21:45 
В тексте новости написано, что ожидается в ветке 1.17.
Посмотрите на цикл релизов nginx и сделайте выводы.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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