Новое в nginx 1.30.0: как обновление повлияет на вашу конфигурацию upstream

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

Поддержка постоянных соединений с вышестоящими серверами теперь включена по умолчанию

Одно из наиболее значимых с операционной точки зрения изменений заключается в том, что постоянные соединения с вышестоящими серверами теперь активированы по умолчанию, а версия HTTP для прокси установлена на 1.1. Ранее администраторам требовалось явно настраивать эту функцию. Изменение затрагивает любую конфигурацию, использующую модуль proxy, и означает, что постоянные соединения с бэкендами устанавливаются без дополнительных директив.

HTTP/2 для связи с вышестоящими серверами

nginx теперь может взаимодействовать с вышестоящими серверами по протоколу HTTP/2. Более ранние версии были ограничены HTTP/1.x на стороне апстрима, независимо от протокола, используемого на стороне клиента. Эта возможность добавлена вместе с исправлениями для работы HTTP/2 апстрима с кешированием и для обработки ожидающих управляющих фреймов при повторной инициализации.

Зашифрованное ClientHello

Версия 1.30.0 включает поддержку Encrypted ClientHello (ECH). Эта технология шифрует сообщение TLS ClientHello, что предотвращает возможность для наблюдателей в сети видеть индикацию имени сервера (SNI) в открытом виде во время установки соединения. Реализация интегрирована с ECH API от OpenSSL.

Ранние подсказки (103 Early Hints)

Теперь поддерживается статусный код 103 Early Hints. Он позволяет nginx отправлять клиентам заголовки ответа до того, как вышестоящий сервер завершит формирование полного ответа, предоставляя браузерам возможность раньше начать предзагрузку ресурсов. В выпуск также вошли исправления для отправки ранних подсказок по HTTP/2 и для обработки множественных ответов 103 от вышестоящих серверов.

«Липкие» сессии для вышестоящих серверов

Балансировка нагрузки получила поддержку «липких» сессий, позволяя nginx направлять повторные запросы от одного клиента на один и тот же вышестоящий сервер. Это часто запрашиваемая функция для stateful-приложений, которые сложно адаптировать для работы с несколькими бэкендами.

Multipath TCP

nginx 1.30.0 добавляет поддержку Multipath TCP (MPTCP). Этот протокол позволяет одному TCP-соединению одновременно использовать несколько сетевых путей, что может повысить пропускную способность и отказоустойчивость в средах с доступом к нескольким интерфейсам.

Изменения в TLS и сертификатах

Сжатие TLS-сертификатов теперь поддерживается в сборках как для OpenSSL, так и для BoringSSL. В релиз также добавлены две новые SSL-переменные, $ssl_sigalg и $ssl_client_sigalg, и загрузка SSL-ключей через OSSL_STORE. Обеспечена совместимость с OpenSSL 4.0 и AWS-LC. QUIC API OpenSSL 3.5 доступен, но по умолчанию отключен.

Новая директива max_headers

Директива max_headers позволяет администраторам установить лимит на количество заголовков запроса, которые nginx будет принимать. Это добавляет точку контроля для смягчения определённых классов злонамеренных или некорректно сформированных запросов.

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

  • 40 инструментов с открытым исходным кодом, меняющих подход команд безопасности к защите стека
  • Время и стоимость сканирования прошивок, а также где команды запускают EMBA

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