Нови версии на nginx 1.27.5, FreeNginx 1.27.6 и JavaScript модула njs 0.8.10.

Представен е основния релиз на nginx 1.27.5, в който продължава развитието на нови възможности. В паралелно поддържаната стабилна версия 1.26.x се внасят единствено изменения, свързани с отстраняването на сериозни грешки и уязвимости. В бъдеще на базата на основния клон 1.27.x ще бъде формирана стабилна версия 1.28. Кодът на проекта е написан на C и се разпространява под BSD лиценз.

Сред промените в nginx 1.27.5:

  • За връзки, използващи протокол QUIC, е добавена поддръжка на алгоритъма за управление на мрежовото претоварване CUBIC (RFC 9438), чиято работа се свежда до постепенно увеличение на размера на прозореца до появата на загуба на пакети, след което размерът на прозореца се възстановява до стойността преди загубата. В проведените тестове използването на CUBIC е намалило времето за предаване на файл с размер 500MB с 24% при закъснения от 40ms и BDP 750K (Bandwidth Delay Product) и с 73% при закъснения от 100ms и BDP 9M.
  • Максималният размер на кешируемите във споделената памет SSL сесии е увеличен до 8192.
  • Настройката на с биоп библиотеката Musl е оптимизирана.
  • Извършена е работа по оптимизация на производителността и отстраняване на грешки в реализирането на HTTP/3.
  • Отстранени са грешки в реализацията на директивите «grpc_ssl_password_file», «proxy_ssl_password_file» и «uwsgi_ssl_password_file», които се проявяваха при зареждане SSL сертификати и ключове за криптиране от променливи.
  • Проблемите с задаването на променливите $ssl_curve и $ssl_curves при използването на подключваеми реализации на елиптичните криви в OpenSSL са отстранени.

Допълнително може да се отбележи публикуването на стабилни версии на проекта FreeNginx 1.27.5 и 1.27.6, развиващ форк на Nginx. Развитието на форка се води от Максим Дунин, един от ключовите разработчици на Nginx. FreeNginx се позиционира като некорпоративен проект, който осигурява разработването на кодовата основа на Nginx без корпоративна намеса.

Промени в FreeNginx 1.27.5 и 1.27.6:

  • Решени са проблемите при използването на OpenSSL 3.5 (в променливите $ssl_curve и $ssl_curves не се показваше името на групата X25519MLKEM768).
  • Отстранено е внезапното приключване на работния процес в конфигурации с директивата proxy_ssl_password_file, проявяващо се при указване на променливи в директивите proxy_ssl_certificate и proxy_ssl_certificate_key.
  • В директивата listen е добавена поддръжка на параметъра multipath.
  • Повторното използване на SSL сесии между сървъри, използващи различни сертификати в директивата ssl_trusted_certificate, е забранено при активирана проверка на клиентските SSL сертификати.
  • Проблемът с повторното използване на сесии в контекста на друго е разрешен. виртуален сървър при използване на TLSv1.3 с OpenSSL 1.1.1e+.
  • Проблемът при използване на zlib-ng е разрешен.

Освен това, издаден е njs 0.8.10, модул за интеграция на интерпретатори на JavaScript в HTTP сървъра nginx. Поддържат се свързвания с различни JavaScript движещи механизми. Като основен предлага собствен двигател QuickJS с поддръжка на спецификацията ECMAScript 2023. Njs позволява използването на JavaScript скриптове в конфигурацията за разширяване възможностите на nginx. Скриптовете могат да се използват за определяне на разширена логика за обработка на заявки, формиране на конфигурация, динамично генериране на отговори, модификация на заявки/отговори или бързо създаване на модули за решаване на проблеми в уеб приложения.

Промени в njs 0.8.10:

  • В JavaScript двигателя QuickJS е добавена поддръжка за API WebCrypto, TextEncoder и TextDecoder.
  • В QuickJS двигателя са добавени нови модули querystring, crypto и xml.
  • Добавена е поддръжка за библиотеката QuickJS-NG.
  • В модула за nginx е реализирано четене на съдържанието на r.requestText и r.requestBuffer от временно файл.

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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster