Angie и Angie PRO обновлены до версии 1.12.0#

13.07.2026

Выпущены Angie и Angie PRO 1.12.0 — крупное функциональное обновление. В Angie с открытым исходным кодом появились балансировка по времени ответа, режим «обучения» sticky и вывод серверов из работы (портированы из Angie PRO), модуль Metrics для stream, сервер DNS-over-HTTPS, API сертификатов, расширенный ACME, а также фильтрация и вывод в формате JSON для журнала ошибок; выпуск основан на последней версии nginx с туннелированием CONNECT.

Доступны Angie и его коммерческая версия Angie PRO — 1.12.0 — с большим набором новых возможностей в каждой из редакций. Если релиз 1.11.0 показался масштабным, этот пошёл ещё дальше: список изменений в каждой из редакций превысил 30 пунктов.

Шесть возможностей Angie PRO теперь доступны в версии с открытым исходным кодом:

  • Балансировка нагрузки по среднему времени ответа с помощью директивы least_time для проксируемых серверов http и stream: для http учитывается время получения заголовка или полного ответа, для stream — время установления соединения и получения байтов. Коэффициент сглаживания настраивается директивой response_time_factor.

  • Режим learn директивы sticky — привязка клиентов к серверам по динамически создаваемым ключам. Сессии хранятся в разделяемой памяти, а способ их создания и поиска гибко настраивается через переменные, например по значению cookie из ответа проксируемого сервера.

  • Режим drain — плавный вывод сервера из ротации: новые запросы на него не направляются, а уже привязанные клиенты дообслуживаются; сервер переходит в новое состояние draining. Обновление без простоя, как и задумано.

  • Среднее время ответа в API статистики: разделы /status/http/upstreams/ и /status/stream/upstreams/ теперь показывают по каждому серверу сразу несколько метрик — для http время получения заголовка и полного ответа, для stream время установления соединения, первого и последнего байта. Коэффициент сглаживания задаётся через response_time_factor; поддерживается Prometheus.

Среди других новшеств обеих редакций:

  • Встроенный сервер DNS-over-HTTPS: новый модуль DoH (RFC 8484) принимает DNS-запросы по HTTP/HTTPS и проксирует их к DNS-серверам по UDP или TCP. Собственный DoH-сервер настраивается несколькими строками конфигурации.

  • Расширенный ACME: выпуск сертификатов для IP-адресов (через Let's Encrypt, с поддержкой профилей), External Account Binding (EAB) для коммерческих удостоверяющих центров (DigiCert, SSL.com и других) через аутентификацию HMAC, улучшенная совместимость с SSL.com и подобными серверами, а также директива acme_dns_ttl для провайдеров, которые фильтруют DNS-ответы с низким TTL.

  • DNS без настройки: конфигурация резолвера теперь включена по умолчанию — Angie сам читает /etc/resolv.conf и следит за его изменениями, поэтому адреса DNS-серверов больше не нужно прописывать вручную; отключается директивой resolver off.

  • Журналирование нового уровня: фильтрация сообщений через filter= и теги error_log_user_tag для маршрутизации событий по обработчикам, вывод журнала ошибок в формате JSON, ограничение частоты через rate= (по умолчанию 1000 сообщений в секунду) и директива time_format с поддержкой strftime() и %L для миллисекунд. Кроме того, ключи SSL-сессий можно журналировать через ssl_keylog_file и proxy_ssl_keylog_file.

  • Более чистая конфигурация: директива goto в модуле rewrite выполняет внутренний переход на именованный location без изменения URI и работает внутри блока if, избавляя от обходных приёмов с try_files и error_page. Встроенные страницы ошибок и списки AutoIndex получили тёмную цветовую схему.

  • Статистика и наблюдаемость: модуль Metrics теперь доступен и для модуля stream — счётчики, гистограммы и скользящие средние через раздел API /status/stream/metric_zones/ с поддержкой Prometheus; новый раздел API /certificates/ собирает в одном месте все сертификаты из конфигурации и полученные клиентами ACME, упрощая контроль сроков действия; переменная $upstream_transport показывает транспорт (TCP или UDP) для каждой попытки соединения с сервером группы.

  • Синхронизация с nginx 1.31.2: включена вся его функциональность, в том числе новый модуль Tunnel для туннелирования CONNECT (Angie как HTTP-прокси для произвольного TCP-трафика), проксирование к серверам по HTTP/2 и новая переменная $ssl_sigalgs со списком алгоритмов подписи, поддерживаемых клиентом.

Дополнительно в Angie PRO:

  • proxy_pass с портом для stream-групп: порт можно указать прямо в proxy_pass для группы серверов, у которых он не задан. Одну группу можно использовать для проксирования на разные порты — статус каждого сервера отслеживается единообразно, и недоступность сервера учитывается сразу для всех портов. Директива no_port явно помечает группу как не использующую порты.

  • proxy_bind теперь вычисляет переменные после выбора сервера, поэтому исходящее соединение можно привязать к адресу, зависящему от конкретного выбранного сервера.

  • Переменная $upstream_current_addr содержит адрес текущего upstream-сервера и доступна уже в момент его выбора — удобна в связке с proxy_bind. В отличие от $upstream_addr, всегда содержит ровно один адрес.

  • Атомарное переключение сервера между основной и резервной группами — одним запросом к полю backup в разделе /config API.

  • Поле feedback в API статистики: при использовании одноимённого метода балансировки показывает текущее накопленное значение динамического веса каждого сервера.

Подробнее об изменениях:

P.S. Кстати, через неделю, 21 июля, Angie исполняется четыре года — так что этот релиз стал ещё и небольшим подарком к празднику. Спасибо всем, кто с нами!

Хорошего дня!