О проекте#

Angie Angie

Angie — эффективный, мощный и масштабируемый веб-сервер, созданный fork’ом от nginx группой разработчиков nginx с целью значительно расширить исходную функциональность.

Angie задуман как замена nginx и будет работать на вашей конфигурации nginx без существенных изменений.

Исходный код размещён в публичных репозиториях и распространяется под свободной лицензией типа BSD.

Готовые сборки доступны в виде пакетов для широкого спектра операционных систем на разных платформах и Docker-образов.

Текущая версия#

Angie 1.2.0 выпущена 30 мая 2023

История версий

Функциональность#

  • вся функциональность nginx 1.25.0, включая поддержку HTTP/3.

  • директива sticky и сопутствующие настройки в блоке upstream HTTP-модуля, позволяющие задать режим привязки сессий, при котором все запросы в рамках сессии будут направляться на один и тот же сервер.

  • переменная $upstream_sticky_status, принимающая значения "NEW", "HIT" или "MISS" в зависимости от успеха направления запроса на релевантный проксируемый сервер с включенной привязкой сессий.

  • поддержка NTLS в HTTP и stream модулях при использовании TLS библиотеки TongSuo, которую можно включить опцией сборки ‑‑with‑ntls и сконфигурировать с помощью соответствующих директив http ssl_ntls / stream ssl_ntls и http proxy_ssl_ntls / stream proxy_ssl_ntls.

  • в HTTP и stream прокси-модулях теперь можно настраивать несколько сертификатов разного типа (RSA и ECDSA) и соответствующих им ключей, используя директивы proxy_ssl_certificate / proxy_ssl_certificate и proxy_ssl_certificate_key / proxy_ssl_certificate_key.

  • вывод версии и сборки в отображаемом имени master процесса, что позволяет с помощью утилиты ps получить эту информацию о работающем экземпляре сервера.

  • возможность сжатия модулем gzip ответов со статусом «207 Multi-Status».

  • опция resolve директивы server в блоке upstream HTTP-модуля, позволяющая отслеживать изменения списка IP-адресов, соответствующего доменному имени, и автоматически обновлять его без перезагрузки конфигурации.

  • опция service директивы server в блоке upstream HTTP-модуля, позволяющая получать списки адресов из DNS SRV записей, с базовой поддержкой приоритета.

  • детальная информация и метрики по группам проксируемых HTTP-серверов в интерфейсе статистики, предоставляемом директивой api.

  • autoindex выводит листинги директорий в естественном порядке.

  • директива api, реализующая HTTP RESTful интерфейс для получения в формате JSON базовой информации о веб-сервере, а также статистики по клиентским соединениям, зонам разделяемой памяти, DNS-запросам, HTTP-запросам, кэшу HTTP-ответов, сессиям модуля stream и зонам модулей limit_conn/limit_req.

  • директива status_zone в модуле http для указания зоны сбора статистики по запросам в server и location контекстах.

  • директива status_zone в модуле stream для указания зоны сбора статистики по TCP/UDP сессиям.

  • параметр status_zone директивы resolver для указания зоны сбора статистики по DNS-запросам.

  • переменная $angie_version, содержащая версию Angie.

Функциональность Angie также может быть дополнена сторонними модулями nginx. В наших репозиториях уже доступны готовые сборки сторонних модулей.