История версий Angie ADC#

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

Angie ADC 0.3.3

История изменений#

2025#

Angie ADC 0.3.3#

Дата выпуска: 24.06.25

Добавления#
  • Балансировщик нагрузки: возможность задать в директиве acme_dns_port не только номер порта, но и IP-адрес; поддерживаются IPv4 и IPv6.

Исправления#
  • Балансировщик нагрузки:

    • Одновременное наличие в директивах server_name wildcard-домена и совпадающих с ним доменов третьего уровня приводило к ошибке ACME-сервера при выпуске сертификата для этих доменов в рамках одного ACME-клиента.

    • В stream-модуле после успешного соединения с проксируемым сервером во время пассивной проверки его статус в API статистики ошибочно продолжал отображаться как unavailable до завершения сессии.

    • В stream-модуле отсчет времени неработоспособности в API статистики мог остановиться или ошибочно сброситься, если проксируемый сервер находился в состоянии unhealthy.

    • Запросы HTTP/3 могли зависать и завершаться по таймауту; исправление портировано из nginx 1.29.0.

    • Ранняя ошибка при установлении соединения HTTP/3 с проксируемым сервером могла приводить к падению рабочего процесса.

    • При проксировании по протоколу HTTP/3 число активных соединений могло отображаться в статистике некорректно.

    • Когда проксируемый сервер в режиме drain оказывался недоступен, попытка соединиться с другим сервером согласно настройкам proxy_next_upstream и аналогичным директивам могла не выполняться.

Пакеты#
  • Обновлены базовые пакеты РЕД ОС 7.3.

  • В образ включен пакет open-vm-tools версии 12.4.0.

Angie ADC 0.3.2#

Дата выпуска: 02.06.25

Функции#
Добавления#
  • Балансировщик нагрузки:

    • Возможность задать файл в директиве proxy_cache_path, в который между запусками сервера будет сохраняться содержимое зоны разделяемой памяти с индексом кэша; что избавляет от необходимости подгружать кэш после перезагрузки и позволяет практически сразу вернуть сервер в работу.

    • Поддержка нескольких групп резервных проксируемых серверов, с указанием уровня группы резервирования сервера директивой backup=level в блоках stream и http.

    • Возможность группе резервных (backup) проксируемых HTTP-серверов оставаться активной в случае, когда серверы из основной группы стали вновь доступны, использующая директиву backup_switch permanent[=timeout] в блоке upstream.

    • Поддержка механизма TLS 1.3 Early Data (0-RTT) в stream-модуле с помощью директивы s_ssl_early_data.

    • Новый статус busy у проксируемых серверов в API статистики, означающий, что число запросов на сервер достигло ограничения, заданного опцией max_conns.

    • Параметр uri= в директиве acme_hook, который позволяет переопределять строку запроса к внешнему приложению, в том числе, используя переменные.

    • Параметр renew_on_load директивы acme_client, позволяющий форсировать обновление сертификата при загрузке конфигурации.

    • Отображение даты и времени сборки в поле build_time объекта /status/angie API статистики, а также в выводе ключа командной строки -V.

    • Вся функциональность nginx 1.27.4, за исключением директивы keepalive_min_timeout (аналогичный функционал уже существовал).

  • Поддержка сценария ручной настройки пула SNAT (SNAT Pool).

  • Режим отказоустойчивости Active-Active по протоколу BGP.

  • Добавлена статья по настройке проверок работоспосбности апстримов балансировщика.

  • Дополнительные функции при работе с резервными копиями конфигурации балансировщика нагрузки в консоли Angie ADC:

    • Можно вернуть рабочий статус конфигурации, которая ранее была помечена как нерабочая.

    • Теперь нельзя пометить первую конфигурацию балансировщика как нерабочую.

  • В консоль Angie ADC добавлена информация о решении и используемой версии (закладка "Об Angie ADC").

  • В справку командной строки (CLI) добавлено разбиение по функциям для более удобного поиска информации.

Изменения#
  • Параметр enabled=off в директиве acme_client теперь отключает только обновление сертификата для данного клиента, но сохраняет весь остальной функционал; так, остается возможность использовать ключ и сертификат (при наличии) через переменные $acme_cert_*, а использование переменных $acme_hook_* и директив acme не приводит к ошибкам.

  • Ошибка no valid domain name defined for ACME client теперь возникает только если на ACME-клиент есть ссылка из директивы acme в блоке server, но ни один из доменов этого сервера не соответствует требованиям ACME.

Исправления#
  • При сборке с поддержкой NTLS наследование директив proxy_ssl_certificate и proxy_ssl_certificate_key с переменными работало некорректно.

  • Cтатистика status_zone в блоке server HTTP-модуля могла считаться некорректно, если запросы попадали в разные зоны статистики в рамках одного соединения или на раннем этапе обработки запроса происходила ошибка; проблема появилась в 0.2.0.

Angie ADC 0.2.1#

Дата выпуска: 14.04.2025.

Исправления#
  • Исправлена ошибка в конфигурации adc-cli для виртуального устройства (VA) Angie ADC, приводившая к получению 404 при загрузке сертификата.

Angie ADC 0.2.0#

Дата выпуска: 25.03.2025.

Функции#
Добавления#
  • Балансировщик нагрузки:

    • Привязка HTTP-сессий для группы проксируемых серверов с запросом во внешнее хранилище, настраиваемое директивой sticky в режиме learn с помощью параметров remote_action и remote_result. Это позволяет конфигурировать привязку клиентских сессий к балансируемым серверам в кластерном режиме, когда группа балансировщиков объединяется общим хранилищем и направляет запросы клиента в рамках одной сессии на один и тот же сервер вне зависимости от того, на какой балансировщик они попали.

    • Поддержка валидации DNS-01 посредством ответа на DNS-запрос от ACME-сервера, что позволяет автоматически запрашивать сертификаты любых типов, в том числе wildcard.

    • Система внешних вызовов в модуле ACME, настраиваемая с помощью директивы acme_hook, которая позволяет обеспечить валидацию доменных имен посредством внешнего обработчика для интеграции с различными сервисами и провайдерами DNS-хостинга.

    • ACME-модуль выводит в лог дополнительную информацию: точная причина обновления сертификата, полный список доменов, идентификатор аккаунта пользователя, длительные периоды неактивности (например, во время опросов), какой домен выполняет валидацию. Такая информация позволяет легче диагностировать проблемы на этапе перевыпуска сертификатов, а также прописывать DNS-запись CAA.

    • Параметр account_key в директиве acme_client, позволяющий переиспользовать существующий ключ аккаунта ACME-сервера, а не генерировать новый автоматически.

    • Поддержка переменных в директиве status_zone в модулях HTTP и stream позволяет динамически распределять статистику по нескольким зонам в рамках одного блока location или server. Это, в частности, пригодится для случая, когда один блок server обрабатывает несколько виртуальных хостов.

    • Совместимость HTTP-модуля сжатия GZip с версиями библиотеки zlib-ng 2.2.0 и выше, которые ранее могли приводить к появлению в логе ошибок вида [alert] gzip filter failed to use preallocated memory.

    • Директива max_headers, ограничивающая максимальное количество полей заголовка в HTTP-запросе для лучшей защиты от DoS-атак. Спасибо Максиму Дунину (freenginx) и Максиму Евменкину.

    • Директивы http3_max_table_capacity и proxy_http3_max_table_capacity для настройки ограничения на размер динамической таблицы сжатия заголовка в HTTP/3.

    • Поддержка кросс-компиляции — система сборки теперь может использовать скрипт-обертку для запуска автотестов, что позволяет подготовить сборку без запуска тестовых программ непосредственно на целевой платформе.

    • Вся функциональность nginx 1.27.3.

  • Веб-консоль Angie ADC:

    • возможность поменять логин и пароль;

    • просмотр уже введенного пароля;

    • удаление пользователей консоли.

  • Добавлена команда reload в Angie ADC CLI для балансировщика нагрузки и сборщика метрик Prometheus.

  • Добавлена конечная точка для сбора информации о состоянии системы (загрузка CPU, память, диск, состояние апстримов балансировщика нагрузки и т.д.).

  • Добавлена настройка для изменения host и port для /metrics.

  • В справку добавлены сценарии по настройке Angie ADC:

Изменения#
  • Балансировщик нагрузки:

    • При плавном завершении старых рабочих процессов keepalive-соединения теперь закрываются только после истечения таймаута, заданного директивой lingering_timeout. Такое поведение позволяет предотвратить возможные ошибки на клиенте при получении ответа в этот момент. Спасибо Максиму Дунину (freenginx).

    • Отключено кэширование значений переменных stream-модуля v_ssl_server_name, v_ssl_server_cert_type, v_ssl_preread_protocol и v_ssl_preread_server_name, что позволит получить актуальные значения при использовании виртуальных серверов.

Безопасность#
  • Недостаточная проверка в обработке виртуальных серверов при использовании SNI в TLSv1.3 позволяла повторно использовать SSL-сессию в контексте другого виртуального сервера, обходя проверку клиентских SSL-сертификатов (CVE-2025-23419); исправление портировано из nginx 1.27.4.

Исправления#
  • Модуль GSLB теперь автоматически перезапускается после изменения конфигурации.

  • Балансировщик нагрузки:

    • HTTP/3-клиенты могли отключаться по таймауту при использовании 0-RTT. Проблема была унаследована из nginx в версии 0.1.0.

    • Проксирование по HTTP/3 с использованием переменных в директиве proxy_pass и без указания блока upstream могло приводить к падению рабочего процесса.

    • Кэширование HTTP/3-ответов при использовании динамической таблицы сжатия заголовка могло привести к падению рабочего процесса.

    • Некоторые SSL-рукопожатия могли не учитываться в счетчиках статистики для stream-модуля.

    • Настройки HTTP/3-проксирования, указанные на уровне http или server, могли игнорироваться.

    • При проксировании по протоколу HTTP/3 с включенной поддержкой NTLS директива proxy_ssl_certificate не работала.

    • Использование директивы status_zone в блоке server HTTP-модуля приводило к избыточному логированию пустых запросов в access_log во время TLS-согласований.

    • Ошибки декодирования потока HTTP/3 могли приводить к падению рабочего процесса при закрытии QUIC-соединения; исправление портировано из nginx 1.27.4.

    • Отправка пакетов с согласованием версии протокола QUIC могла привести к бесконечному циклу обмена пакетами; исправление портировано из nginx 1.27.4.

    • Использование DNS-валидации без хуков в ACME-модуле на некоторых конфигурациях могло привести к падению рабочего процесса.

    • Активные проверки, заданные директивой upstream_probe в stream-модуле, могли приводить к падению рабочего процесса.

    • Запросы к API для получения значений статистики из отдельной зоны, которая была задана через переменные, могли приводить к зацикливанию рабочего процесса.

    • HTTP/3-запросы не учитывались в зонах статистики.

    • TLS-согласования по протоколу QUIC не учитывались в статистике по SSL.

    • Использование доменных имен, начинающихся с точки, в директиве server_name, могло привести к ошибке обновления сертификата по протоколу ACME.

  • Исправление уязвимостей.

Angie ADC 0.1.0#

Дата выпуска: 07.09.2024.

Регистрация в Реестре ПО: номер 24972 от 27.11.2024.

Функции#
  • Балансировщик нагрузки:

    • Полная функциональность на основе Angie PRO 1.7.0.

    • Дополнительные функции:

      • Балансировка с учетом полосы пропускания до или от проксируемых серверов, с настраиваемым коэффициентом сглаживания, использующая директиву least_bandwidth в блоках upstream и http.

      • Балансировка с учетом полосы пропускания, расчитываемой по количеству пакетов в единицу времени, до или от проксируемых stream-серверов, использующая директиву least_packets в блоке upstream.

  • Модуль GSLB.

  • Веб-консоль Angie ADC:

    • просмотр статистики балансировщика нагрузки;

    • управление пользователями.