О проекте#
Angie
— эффективный, мощный и масштабируемый веб-сервер,
созданный как форк nginx:
Задуман бывшими разработчиками nginx, чтобы значительно расширить функциональность.
Предполагает подмену nginx на месте без переработки конфигурации.
Мы собираем бинарные пакеты для разных ОС и архитектур, а также Docker-образы. Исходный код открыт в публичных репозиториях под свободной лицензией типа BSD. Динамические модули nginx совместимы с Angie; мы также собираем ряд таких модулей.
Текущая версия#
Angie 1.3.0
, выпущена 19.09.2023.
Также см. полную историю версий.
Функциональность#
Доступны:
Все возможности nginx 1.25.2, включая поддержку HTTP/3.
В версии 1.3.0:
Возможность указывать в директиве
location
несколько строк для сопоставления, что позволяет объединить несколько блоковlocation
с одинаковыми настройками и, таким образом, упростить конфигурацию за счет уменьшения дублирования.Экспорт различных метрик статистики в формате Prometheus с гибко настраиваемыми шаблонами при помощи новых директив prometheus и prometheus_template.
Детальная информация и метрики по группам проксируемых stream-серверов в интерфейсе статистики, предоставляемом директивой api.
Опция resolve директивы
server
в блокеupstream
модуля stream, позволяющая отслеживать изменения списка IP-адресов, соответствующего доменному имени, и автоматически обновлять его без перезагрузки конфигурации.Опция service директивы
server
в блокеupstream
модуля stream, позволяющая получать списки адресов из DNS-записей SRV, с базовой поддержкой приоритета.Получение содержимого конфигурационных файлов, с которыми было запущено текущее поколение рабочих процессов, в интерфейсе, предоставляемом директивой api при включении директивы api_config_files.
Отображение номера поколения конфигурации в именах процессов, что позволяет с помощью утилиты
ps
отслеживать успех перезагрузок конфигурации и количество поколений рабочих процессов с предыдущими версиями конфигурации.
В версии 1.2.0:
Директива sticky и сопутствующие настройки в блоке upstream HTTP-модуля, позволяющие задать режим привязки сессий, при котором все запросы в рамках сессии будут направляться на один и тот же сервер.
Переменная $upstream_sticky_status, принимающая значения
NEW
,HIT
илиMISS
в зависимости от успеха направления запроса на релевантный проксируемый сервер с включенной привязкой сессий.Поддержка NTLS в HTTP и stream модулях при использовании TLS библиотеки TongSuo, включаемая опцией сборки
‑‑with‑ntls
и настраиваемая с помощью соответствующих директив ssl_ntls и proxy_ssl_ntls.В HTTP и stream прокси-модулях теперь можно настраивать несколько сертификатов разного типа (RSA и ECDSA) и соответствующих им ключей, используя директивы proxy_ssl_certificate и proxy_ssl_certificate_key.
Вывод версии и сборки в отображаемом имени
master
процесса, что позволяет с помощью утилитыps
получить эту информацию о работающем экземпляре сервера.Возможность сжатия модулем gzip ответов со статусом «207 Multi-Status». Спасибо DBotThePony.
В версии 1.1.0:
Опция resolve директивы server в блоке upstream HTTP-модуля, позволяющая отслеживать изменения списка IP-адресов, соответствующего доменному имени, и автоматически обновлять его без перезагрузки конфигурации.
Опция service директивы server в блоке upstream HTTP-модуля, позволяющая получать списки адресов из DNS SRV записей, с базовой поддержкой приоритета.
Детальная информация и метрики по группам проксируемых HTTP-серверов в интерфейсе статистики, предоставляемом директивой api.
autoindex выводит листинги директорий в естественном порядке.
В версии 1.0.0:
Директива 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-запросам.