Выпуск nginx 1.17.1 и njs 0.3.3

Материал из Викиновостей, свободного источника новостей

26 июня 2019 года

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

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

  • Добавлена директива limit_req_dry_run, которая активирует режим пробного запуска, в котором не применяются ограничения на интенсивность обработки запросов (без rate limit), но продолжается учёт выходящего за лимиты числа запросов в разделяемой памяти;
  • При использовании в блоке настроек "upstream" директивы "hash" для организации балансировки нагрузки с привязкой клиента к серверу, в случае указания пустого значения ключа теперь активируется режим равномерной балансировки (round-robin);
  • Устранён крах рабочего процесса при использовании кэша в сочетании с директивой "image_filter" и перенаправлением обработчика кода ошибки 415 с использованием директивы "error_page";
  • Устранён крах рабочего процесса, проявляющийся при использовании встроенного интерпретатора Perl.

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

В новом выпуске njs устранены проблемы, выявленные в ходе fuzzing-тестирования. Реализована глобальная переменная "process" c параметрами и переменными окружения текущего процесса (process.pid, process.env.HOME и т.п.). Обеспечена возможность записи во все встроенные свойства и метод. Добавлена реализация Array.prototype.fill(). Реализована поддержка предложенного в ECMAScript 5 синтаксиса getter и setter для привязки свойства объекта к функции, например:


var o = {a:2};
Object.defineProperty(o, ‘b’, {get:function(){return 2*this.a}});

Источники[править]

Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Выпуск nginx 1.17.1 и njs 0.3.3», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.