Представлен выпуск высокопроизводительного HTTP-сервера и многопротокольного прокси-сервера Angie 1.8.0, ответвлённого от Nginx группой бывших разработчиков проекта, уволившихся из компании F5 Network. Исходные тексты Angie доступны под лицензией BSD. Проект получил сертификаты совместимости с российскими операционными системами Ред ОС, Astra Linux Special Edition, Роса Хром Сервер, Альт и ФСТЭК-версии Альт.
Сопровождением разработки занимается компания “Веб-сервер”, образованная осенью 2022 года и получившая инвестиции в размере 1 млн долларов. Среди совладельцев компании Веб-сервер: Валентин Бартенев (лидер команды, развивавшей продукт Nginx Unit), Иван Полуянов (бывший руководитель фронтэнд-разработчиков Rambler и Mail.Ru), Олег Мамонтов (руководитель команды техподдержки NGINX Inc) и Руслан Ермилов ([email protected]).
- Расширены возможности модуля http_acme, предназначенного для автоматизации получения и обновления сертификатов от удостоверяющего центра Let’s Encrypt, использующего протокол ACME (Automatic Certificate Management Environment):
- Добавлена поддержка метода проверки DNS-01, необходимого для получения сертификатов с масками, охватывающими группу поддоменов (например, *.example.com).
- Добавлена директива “acme_hook“, через которую можно настроить вызов внешних приложений с обработчиками процесса подтверждения владения доменом. Подобные обработчики могут использоваться для интеграции с внешними сервисами и провайдерами DNS.
- Для упрощения диагностики в лог добавлена дополнительная информация, такая как причина обновления сертификата, полный список доменов, идентификатор учётной записи клиента, сведения о неактивности и проверяемый домен.
- В директиву “acme_client” добавлен параметр “account_key” для повторного использования существующего ключа доступа к серверу ACME, вместо автоматической генерации нового ключа.
- Реализована возможность указания переменных в директиве “status_zone”, применяемой в модулях stream и http. Переменные можно использовать для динамического учёта статистики в привязке к отдельными виртуальных хостам, определённым в одном блоке “location” или “server”. server { listen 80; server_name *.example.com; status_zone $host zone=host_zone:10; location / { proxy_pass https://example.com; } }
- В модуле сжатия gzip обеспечена совместимость с библиотекой zlib-ng 2.2 и более новыми версиями.
- Из проекта freenginx перенесена реализация директивы max_headers, ограничивающей максимальное число HTTP-заголовков в запросе, что может быть полезным для защиты от DoS-атак.
- Добавлены директивы http3_max_table_capacity и proxy_http3_max_table_capacity для ограничения размера таблицы, применяемой для сжатия заголовков в HTTP/3.
- Добавлена поддержка кросс-компиляции – сборку теперь можно осуществлять без необходимости запуска скриптов autotest на целевой платформе.
- Из freenginx перенесено изменение, решающее проблему с ошибками доставки ответов во время мягкого завершения процессов-обработчиков (gracefully shutdown) – соединения keep-alive теперь закрываются только после истечения таймаута, заданного в директиве lingering_timeout.
- Для получения актуальных значений при использовании виртуальных хостов, в модуле stream отключено кэширование переменных $ssl_server_name, $ssl_server_cert_type, $ssl_preread_protocol и $ssl_preread_server_name.
- Из репозитория проекта nginx перенесены изменения, предложенные в версии nginx 1.27.3.