В последней версии nginx 1.27.5 появилась поддержка алгоритма управления сетевой перегрузкой CUBIC (RFC 9438) для протокола QUIC, что позволяет настраивать окно перегрузки динамически в зависимости от потерь пакетов. Этот подход сократил время передачи 500МБ файла на 24–73% в тестах с различными задержками и Bandwidth Delay Product (BDP). Также увеличен максимальный размер кэшируемых в разделяемой памяти сеансов SSL до 8192 и улучшена совместимость сборки с библиотекой Musl. Оптимизация производительности коснулась и реализации HTTP/3.
Исправлены ошибки с директивами "grpc_ssl_password_file", "proxy_ssl_password_file" и "uwsgi_ssl_password_file", а также устранены проблемы с переменными $ssl_curve и $ssl_curves, что связано с проверками в OpenSSL.
Разработки в FreeNginx
Выпуск FreeNginx 1.27.5 и 1.27.6, развивающегося под руководством Максима Дунина, включает ряд исправлений для OpenSSL 3.5 и других сторонних интеграций. Такая точная настройка предотвращает аварийному завершению рабочих процессов в конфигурациях с "proxy_ssl_password_file" и улучшает повторное использование SSL-сеансов.
Добавлена поддержка параметра multipath в директиве listen и улучшена обработка директивы ssl_trusted_certificate для разных серверов. Также решены проблемы с zlib-ng и TLSv1.3 в контексте OpenSSL 1.1.1e+.
Обновление модуля njs 0.8.10
Модуль njs 0.8.10 интегрирует интерпретатор JavaScript в nginx, расширяя его возможности. Новая версия поддерживает подключение разных движков, включая обновлённый QuickJS с ECMAScript 2023. Добавлена поддержка API WebCrypto, TextEncoder и TextDecoder, а также новые модули querystring, crypto и xml. Теперь в модуле nginx реализовано чтение r.requestText и r.requestBuffer из временного файла.