Выпуск nginx 1.23.1 и njs 0.7.6

Сформирован выпуск основной ветки nginx 1.23.1, в рамках которой продолжается развитие новых возможностей. В параллельно поддерживаемой стабильной ветке 1.22.x вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей. В следующем году на базе основной ветки 1.23.x будет сформирована стабильная ветка 1.24.

Среди изменений:

  • Проведена оптимизация потребления памяти в конфигурациях в проксированием SSL.
  • В директиву “resolver” добавлен параметр “ipv4=off”, позволяющий отключить поиск IPv4-адресов при преобразовании имён и адреса.
  • Уровень логов для ошибок SSL “bad key share”, “bad extension”, “bad cipher” и “bad ecpoint” понижен с критического до информационного.
  • Устранена ошибка, из-за которой при возврате диапазонов nginx не удалял строку заголовка”Content-Range”, если она присутствовала в исходном ответе бэкенда.
  • Устранена ошибка, приводившая к тому, что проксированный ответ мог быть отправлен не полностью при переконфигурации на Linux.

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

В новой версии расширены возможности объекта r.args{}: добавлена поддержка указания нескольких аргументов одному ключу и разделения ключей по регистру символов. Реализованы методы Symbol.for(), Symbol.keyfor(), atob() и btoa().

Release. Ссылка here.