Выпуск nginx 1.19.1 и njs 0.4.2

Представлен выпуск новой основной ветки nginx 1.19.1, в рамках которой ведётся развитие новых возможностей. В параллельно поддерживаемой стабильной ветке 1.18.x вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей. В следующем году на базе основной ветки 1.19.x будет сформирована стабильная ветка 1.20.

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

  • В директивы «proxy_cache_path«,
    «fastcgi_cache_path», «scgi_cache_path» и «uwsgi_cache_path» добавлен параметр «min_free», регулирующий размер кэша на основе определения минимального размера свободного дискового пространства.

  • Директивы «lingering_close«, «lingering_time» и «lingering_timeout» адаптированы для работы с HTTP/2.
  • Обеспечено отбрасывание всех лишних данных, отправляемых бэкендом.
  • При получении очень короткого ответа от сервера FastCGI, Nginx теперь пытается отправить клиенту доступную часть ответа, после чего закрывает соединение.
  • При получении от бэкенда gRPC ответа некорректной длины, Nginx прекращает обработку запроса с выводом ошибки.
  • Устранены ошибки, например, обеспечено удаление слушающих Unix-сокетов при обработке сигнала SIGQUIT, налажено проксирование UDP-пакетов нулевого размера и проксирование к бэкендам uwsgi при использовании SSL, исправлена обработка ошибок при использовании директивы «ssl_ocsp», исправлен некорректный расчёт размера кэша в ФC XFS и NFS.

Одновременно состоялся выпуск njs 0.4.2, интерпретатора языка JavaScript для веб-сервера nginx. Интерпретатор njs реализует стандарты ECMAScript и позволяет расширять возможности nginx по обработке запросов с помощью скриптов в конфигурации. Скрипты могут использоваться в файле конфигурации для определения расширенной логики обработки запросов, формирования конфигурации, динамической генерации ответа, модификации запроса/ответа или быстрого создания заглушек с решением проблем в web-приложениях. В новой версии добавлена поддержка RegExp.prototype[Symbol.replace] и %TypedArray%.prototype.sort(). Представлена возможность построчной обратной трассировки. В модуль «fs» добавлены функции, подобные mkdir(), readdir() и rmdir().

Кроме того, в министерстве внутренних дел РФ получено подтверждение информации о прекращении уголовного дела о правах на программное обеспечение Nginx, а также о завершении проверки принятого решения надзирающей прокуратурой. «Указанное уголовное дело, возбужденное 04.12.2019 по факту нарушения авторских прав ООО «Рамблер Интернет Холдинг» при разработке программного обеспечения «Nginx», 18.05.2020 прекращено по п. 1 ч. 1 ст. 24 УПК РФ (в связи с отсутствием состава преступления)». Ранее о прекращении уголовного дела сообщил Игорь Сысоев, автор Nginx, но оставалась вероятность отмены данного решения надзорными органами. При этом в суде США продолжается связанное с правами на Nginx разбирательство против компаниии F5 Networks, инициированное после подачи иска юридической фирмой Lynwood Investments.

Источник: opennet.ru