Выпуск Angie 1.8.0, форка Nginx

Представлен выпуск высокопроизводительного HTTP-сервера и многопротокольного прокси-сервера Angie 1.8.0, ответвлённого от Nginx группой бывших разработчиков проекта, уволившихся из компании F5 Network. Исходные тексты Angie доступны под лицензией BSD. Проект получил сертификаты совместимости с российскими операционными системами Ред ОС, Astra Linux Special Edition, Роса Хром Сервер, Альт и ФСТЭК-версии Альт.

Сопровождением разработки занимается компания «Веб-сервер«, образованная осенью 2022 года и получившая инвестиции в размере 1 млн долларов. Среди совладельцев компании Веб-сервер: Валентин Бартенев (лидер команды, развивавшей продукт Nginx Unit), Иван Полуянов (бывший руководитель фронтэнд-разработчиков Rambler и Mail.Ru), Олег Мамонтов (руководитель команды техподдержки NGINX Inc) и Руслан Ермилов (ru@FreeBSD.org).

Изменения в Angie 1.8.0:

  • Расширены возможности модуля 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 http://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.

Источник: http://www.opennet.ru/opennews/art.shtml?num=62438