Выпуск nginx 1.17.0 и njs 0.3.2

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

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

  • Добавлена поддержка переменных в директивах «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».

Из значительных улучшений, которые ожидаются в ветке 1.17, упоминается реализация поддержки протоколов QUIC и HTTP/3.

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

В новом выпуске njs добавлена поддержка шаблонов строк, определённых в спецификации ECMAScript 6. Шаблоны строк являются строковыми литералами, допускающими встраивание выражений. Выражения определяются в размещённом внутри строки блоке ${…}, который может включать как отдельные переменные (${name}), так и выражения (${5 + a + b})). Кроме того, добавлена поддержка именованных групп в объекте RegExp, позволяющих связать сопоставленные регулярным выражением части строки с определёнными именами вместо порядковых номеров совпадений. Добавлена поддержка сборки с библитекой GNU Readline.

© OpenNet