Версия nginx 1.30.0 объединяет функции, накопленные в основной ветке 1.29.x. Этот выпуск включает широкий спектр изменений: от добавления поддержки протоколов до исправлений, связанных с безопасностью, и новых опций конфигурации.

Одно из наиболее значимых с операционной точки зрения изменений заключается в том, что постоянные соединения с вышестоящими серверами теперь активированы по умолчанию, а версия HTTP для прокси установлена на 1.1. Ранее администраторам требовалось явно настраивать эту функцию. Изменение затрагивает любую конфигурацию, использующую модуль proxy, и означает, что постоянные соединения с бэкендами устанавливаются без дополнительных директив.
nginx теперь может взаимодействовать с вышестоящими серверами по протоколу HTTP/2. Более ранние версии были ограничены HTTP/1.x на стороне апстрима, независимо от протокола, используемого на стороне клиента. Эта возможность добавлена вместе с исправлениями для работы HTTP/2 апстрима с кешированием и для обработки ожидающих управляющих фреймов при повторной инициализации.
Версия 1.30.0 включает поддержку Encrypted ClientHello (ECH). Эта технология шифрует сообщение TLS ClientHello, что предотвращает возможность для наблюдателей в сети видеть индикацию имени сервера (SNI) в открытом виде во время установки соединения. Реализация интегрирована с ECH API от OpenSSL.
Теперь поддерживается статусный код 103 Early Hints. Он позволяет nginx отправлять клиентам заголовки ответа до того, как вышестоящий сервер завершит формирование полного ответа, предоставляя браузерам возможность раньше начать предзагрузку ресурсов. В выпуск также вошли исправления для отправки ранних подсказок по HTTP/2 и для обработки множественных ответов 103 от вышестоящих серверов.
Балансировка нагрузки получила поддержку «липких» сессий, позволяя nginx направлять повторные запросы от одного клиента на один и тот же вышестоящий сервер. Это часто запрашиваемая функция для stateful-приложений, которые сложно адаптировать для работы с несколькими бэкендами.
nginx 1.30.0 добавляет поддержку Multipath TCP (MPTCP). Этот протокол позволяет одному TCP-соединению одновременно использовать несколько сетевых путей, что может повысить пропускную способность и отказоустойчивость в средах с доступом к нескольким интерфейсам.
Сжатие TLS-сертификатов теперь поддерживается в сборках как для OpenSSL, так и для BoringSSL. В релиз также добавлены две новые SSL-переменные, $ssl_sigalg и $ssl_client_sigalg, и загрузка SSL-ключей через OSSL_STORE. Обеспечена совместимость с OpenSSL 4.0 и AWS-LC. QUIC API OpenSSL 3.5 доступен, но по умолчанию отключен.
Директива max_headers позволяет администраторам установить лимит на количество заголовков запроса, которые nginx будет принимать. Это добавляет точку контроля для смягчения определённых классов злонамеренных или некорректно сформированных запросов.

Обязательно к прочтению:

Подпишитесь на ежемесячную рассылку Help Net Security без рекламы, чтобы быть в курсе важнейших инструментов кибербезопасности с открытым исходным кодом. Подписаться можно здесь!
