
14 апреля 2026 года состоялся выпуск высокопроизводительного HTTP‑сервера и многопротокольного прокси‑сервера nginx 1.30.0. Исходный код проекта nginx написан на языке C и распространяется под лицензией BSD. Проект nginx 1.28.0 вышел в апреле 2025 года. Выпуск nginx 1.29 случился в июне 2025 года.

В рамках nginx 1.30 разработчиками будет продолжено развитие новых возможностей. В параллельно поддерживаемой стабильной ветке 1.29.x вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей. В следующем году на базе основной ветки 1.30.x будет сформирована стабильная ветка 1.31.
По информации OpenNET, в nginx 1.30 вошли улучшения и дополнения:
-
добавлена поддержка протокола Multipath TCP (MPTCP), позволяющего доставлять пакеты одновременно по нескольким маршрутам через разные сетевые интерфейсы. Для включения в директиву «isten добавлен параметр multipath;
-
добавлена поддержка TLS‑расширения ECH (Encrypted ClientHello), продолжающего развитие расширения ESNI (Encrypted Server Name Indication) и используемого для шифрования информации о параметрах TLS‑сеансов, таких как запрошенное доменное имя. Ключевое отличие ECH от ESNI в том, что в ECH вместо шифрования на уровне отдельных полей целиком шифруется всё TLS‑сообщение ClientHello, что позволяет блокировать утечки через поля, которые не охватывает ESNI, например, поле PSK (Pre‑Shared Key). Использование ECH включается через указание в директиве ssl_ech_file файла конфигурации ECHConfig в формате PEM. Поддержка доступна при использовании библиотеки OpenSSL 4.0;
-
добавлена возможность привязки сеансов клиентов к одним и тем же серверам в группе. Доступно три метода: cookie — передача данных о выбранном сервере через указанную Cookie; route — проксируемый сервер назначает клиенту маршрут при получении первого запроса; learn — nginx анализирует ответы от upstream‑сервера и запоминает начатые сервером сеансы. Для настройки привязки в блок upstream модуля http добавлена директива sticky, а в директиву server добавлены параметры route и drain;
-
добавлена директива early_hints и реализована поддержка HTTP‑кода 103 в ответах от бэкендов proxy и gRPC. Код 103 позволяет информировать клиента о содержании некоторых HTTP‑заголовков сразу после запроса, не дожидаясь пока сервер выполнит все связанные с запросом операции и начнёт отдачу контента. Подобным образом можно сообщать подсказки о связанных с отдаваемой страницей элементах, которые могут быть предварительно загружены (например, могут быть приведены ссылки на используемые на странице css и javascript). Получив информацию о подобных ресурсах браузер приступит к их загрузке не дожидаясь окончания отдачи основной страницы, что позволяет сократить общее время обработки запроса;
-
добавлены директивы add_header_inherit и add_trailer_inherit, позволяющие изменить правила наследования значений, указанных в директивах add_header и add_trailer. Параметр off отменяет наследование значений, а параметр merge включает добавление значений с предыдущего уровня к значениям на текущем уровне;
-
добавлена директива ssl_certificate_compression для управления сжатием TLS‑сертификатов;
-
добавлена директива max_headers, ограничивающая максимальное число HTTP‑заголовков в запросе. При превышении лимита возвращается ошибка 400 (Bad Request). Возможность перенесена из FreeNginx;
-
добавлены переменные $request_port и $is_request_port. Первая переменная содержит номер порта из компонента URI или из заголовка «Host», а вторая содержит «:», если переменная $request_port не пустая;
-
добавлены переменные $ssl_sigalg и $ssl_client_sigalg, содержащие название алгоритма формирования цифровой подписи для TLS‑соединения;
-
в директиву geo добавлен параметр volatile, отключающий кэширование переменной. Разрешено использовать маски в директиве include, указанной внутри блока geo;
-
в блоке upstream активирована по умолчанию директива keepalive. В директиву keepalive, используемую в блоке upstream, добавлен параметр local. При указании данного параметра, вместо совместного использования одного соединения к общему upstream‑серверу, упоминаемому в разных блоках location и server, для каждого блока поддерживается отдельное соединение к upstream;
-
при использовании в режиме прокси по умолчанию выставлена версия протокола HTTP/1.1 с включением режима keep‑alive (в модуле ngx_http_proxy_module включена по умолчанию поддержка keep‑alive и выставлено значение 1.1 в директиве proxy_http_version и прекращена отправка по умолчанию заголовка Connection);
-
в модуль ngx_http_proxy добавлена поддержка протокола HTTP/2, что позволяет использовать HTTP/2 при обращении к бэкендам;
-
предоставлена возможность загрузки криптографических ключей из аппаратных токенов, используя в качестве провайдера библиотеку OpenSSL;
-
в реализацию протокола QUIC добавлена поддержка режима 0-RTT, доступная на системах с OpenSSL 3.5.1 и более новыми выпусками;
-
добавлена возможность сборки с криптографической библиотекой AWS‑LC, развиваемой компанией Amazon;
-
по умолчанию отключено сжатие сертификатов TLSv1.3;
-
обеспечена совместимость с библиотекой OpenSSL 4.0.

Также состоялся релиз проекта FreeNginx 1.30.0 — форка Nginx от Максима Дунина (один из ключевых разработчиков Nginx). Решение FreeNginx позиционируется как некоммерческий проект, обеспечивающий разработку кодовой базы Nginx без корпоративного вмешательства. Код FreeNginx продолжает поставляться под лицензией BSD. Среди изменений в ветке FreeNginx 1.30: добавлена поддержка TLS-расширения ECH (Encrypted Client Hello); улучшена обработка директивы limit_rate; добавлены директивы send_min_rate и client_body_min_rate; реализована возможность ограничения числа соединений и интенсивности запросов в почтовом прокси; добавлена поддержка БД GeoIP2 в модуле GeoIP; усилена защита модуля XSLT.

ссылка на оригинал статьи https://habr.com/ru/articles/1023616/