Компания Nginx выпустила версию 1.30, создав новую стабильную ветку для самого широко распространенного в мире веб-сервера, который в настоящее время используется более чем на 32% всех веб-сайтов мира.
В этом выпуске добавлена поддержка HTTP Early Hints, соединений HTTP/2 с бэкэндами, интеграции OpenSSL ECH для Encrypted ClientHello, «липких» сессий для бэкэндов и Multipath TCP. По умолчанию версия HTTP для upstream-серверов теперь установлена на HTTP/1.1 с включенной функцией keep-alive.
В этом релизе также расширена функциональность TLS и SSL. Среди значимых изменений — сжатие сертификатов, поддержка загрузки ключей через OSSL_STORE, сжатые сертификаты сервера с BoringSSL, новые переменные $ssl_sigalg и $ssl_client_sigalg, обновленная обработка SNI через callback ClientHello и улучшения совместимости с OpenSSL 4.0.
Улучшения протокола HTTP в NGINX 1.30 включают улучшенную обработку повторяющихся ответов 103, очистку адресов Early Hints по HTTP/2, добавление индексированных полей для 103 Early Hints в HTTP/3, а также устранение проблем с :authority и обработкой Host в HTTP/2 и HTTP/3. В этом выпуске также представлена инфраструктура HTTP CONNECT и директива max_headers.
Что касается HTTP/3, то в нем были исправлены проблемы с обработкой целых чисел переменной длины, поведением подтверждений при ограниченных окнах перегрузки, ошибками сегментации при сбоях рукопожатия, обработкой безсостоятельных сбросов, привязанными к рабочим процессам токенами безсостоятельных сбросов, компиляцией BPF с новыми ядрами Linux, интеграцией API QUIC в OpenSSL 3.5, а также различные улучшения совместимости и тестирования функций.
Наряду с поддержкой HTTP/2 upstream и sticky sessions, версия 1.30 устраняет проблемы с переинициализацией запросов gRPC с Early Hints, проблемы с кэшированием HTTP/2 upstream, ошибки сегментации при изменении URI в проксировании, поведение при сбросе для ожидающих контрольных фреймов HTTP/2, сброс цепочки буферов gRPC при переинициализации upstream, сброс локальных адресов при ошибках и обнаружение переполнения при разборе Cache-Control delta-seconds.
Также стоит отметить, что модуль keepalive upstream теперь включен по умолчанию. Кроме того, было реализовано множество дополнительных исправлений в других компонентах сервера. Чтобы ознакомиться со всеми ними подробно, обратитесь к журналу изменений.