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