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

2024#

Angie PRO 1.6.0#

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

Добавления#

  • Балансировка HTTP-запросов с учетом значения указанной переменной, которое может быть получено от проксируемых серверов или периодического опроса внешних сервисов, настраиваемая с помощью директивы feedback в блоке upstream; что позволяет, в частности, динамически перераспределять нагрузку в зависимости от произвольных метрик проксируемого сервера: расхода различных ресурсов, загруженности CPU/памяти, длинны очереди и т.п.

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

  • Извлечение значений Cookie из RDP-соединений с помощью директивы rdp_preread stream-модуля в переменные $rdp_cookie и $rdp_cookie_NAME, что позволяет логгировать и привязывать RDP-сеансы клиентов к одним и тем же серверам при балансировке нагрузки.

  • Опция persistent директивы upstream_probe, позволяющая не ждать прохождения проверки essential после перезагрузки конфигурации для ранее работоспособных серверов.

  • Возможность указать несколько директив acme в одном блоке server, что позволяет настраивать получение сертификатов сразу двух типов в рамках данного виртуального сервера.

  • Ключи командной строки -m и -M для отображения списка встроенных и загруженных модулей.

  • Переменная $upstream_probe, которая содержит имя текущей активной проверки, порожденной upstream_probe.

  • Поддержка BoringSSL в модуле ACME.

  • Вся функциональность nginx 1.27.0, включая поддержку виртуальных серверов в модуле stream и директиву pass, позволяющую передавать принятые соединения на обработку в другие слушающие сокеты, в том числе модулей HTTP и Mail.

Исправления#

  • Активные проверки upstream_probe могли не работать на некоторых конфигурациях, логгируя при этом ошибки вида [alert] getsockname() failed (9: Bad file descriptor).

  • Запрос сертификата по протоколу ACME мог завершаться ошибкой в некоторых конфигурациях с сообщением в логе вида [alert] getsockname() failed (9: Bad file descriptor).

  • Запрос сертификата с большим количеством доменных имен по протоколу ACME мог завершаться ошибкой с сообщением в логе вида [error] JSON parser error.

  • ACME-клиенты в конфигурациях с несколькими директивами error_log могли выводить сообщения в несоответствующие логи.

Пакеты#


Angie PRO 1.5.2#

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

Безопасность#

  • При использовании HTTP/3 обработка специально созданной QUIC-сессии могла приводить к падению рабочего процесса, отправке клиенту содержимого памяти рабочего процесса на системах с MTU больше 4096 байт и иметь другие последствия (CVE-2024-32760, CVE-2024-31079, CVE-2024-35200, CVE-2024-34161); исправление портировано из nginx 1.26.1.

Пакеты#


Angie PRO 1.5.1#

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

Исправления#

  • Механизм proxy_next_upstream работал некорректно при редактировании группы проксируемых серверов через API, а также при использовании опции resolve директивы server в блоке upstream, если количество полученных IP-адресов отличалось от числа заданных серверов.

  • При запросе сертификата по протоколу ACME могла произойти ошибка сегментации в рабочем процессе.

  • Директива sticky в режиме learn могла работать некорректно с различающимся количеством переменных lookup и create.

  • Механизм slow_start не срабатывал при проксировании TCP-соединений в модуле stream.

  • Запросы HTTP/3 могли завершаться с ошибкой, если они были присланы как TLS 1.3 early data; проблема появилась в 1.4.0.

  • HTTP/3-соединение могло закрываться преждевременно при использовании 0-RTT в QUIC.

  • При чтении тела запроса из быстрого соединения было возможно чтение в течение долгого времени. Спасибо Максиму Дунину (freenginx).

Изменения#

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

Пакеты#

27.05.2024

  • Пакеты для операционной системы Alpine 3.20.


Angie PRO 1.5.0#

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

Добавления#

  • Начальная поддержка автоматического получения и обновления сертификатов по протоколу ACME, конфигурируемая с помощью директив acme_client и acme, а также переменных вида $acme_cert_* и $acme_cert_key_*.

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

  • Настройка автоматического перенаправления для добавления слеша в конец URI запроса с помощью директивы auto_redirect.

  • Вывод содержащих даты метрик в формате временных меток Unix вместо ISO 8601 для использования в Prometheus, а также в JSON API при запросе с аргументом ?date=epoch.

  • Теперь ключ -V показывает также релевантную версию nginx, что полезно для совместимости со сторонними утилитами, в частности certbot. Спасибо AdvTechnoKing.

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

Исправления#

  • Если был задействован механизм переиспользования SSL-сессий (proxy_ssl_session_reuse), то при динамическом обновлении списка проксируемых серверов могла происходить утечка из зоны разделяемой памяти (zone), настроенной для соответствующего блока upstream.

Пакеты#

28.03.2024

16.04.2024

25.04.2024


Angie PRO 1.4.1#

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

Безопасность#

  • При использовании HTTP/3 в рабочем процессе во время обработки специально созданной QUIC-сессии могла произойти ошибка сегментации (CVE-2024-24989); при этом Angie, начиная еще с версии 1.4.0, не подвержен уязвимости CVE-2024-24990.

Пакеты#

2023#

Angie PRO 1.4.0#

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

Добавления#

  • Поддержка HTTP/3-соединений с upstream-серверами в прокси-модуле HTTP, допускающая использование клиентами произвольных версий HTTP. Конфигурация осуществляется с помощью директивы proxy_http_version и набора директив proxy_quic_ и proxy_http3_.

  • Директива upstream_probe (PRO) для активной проверки состояния серверов в блоке upstream stream-модуля путем периодического создания тестовых соединений или отправки датаграмм.

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

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

  • HTTP RESTful JSON-интерфейс для изменения конфигурации, добавления и удаления проксируемых серверов в блоках upstream stream-модуля, а также директива state для долговременного сохранения этих изменений.

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

  • Статистика по среднему времени установки соединения, получения первого и последнего байта ответа от проксируемых stream-серверов в интерфейсе, предоставляемом директивой api, с возможностью настройки коэффициента сглаживания директивой response_time_factor (PRO) блока upstream.

  • Механизм плавного ввода проксируемого сервера в работу после сбоя с помощью опции slow_start директивы server в блоке upstream.

  • Директива mqtt_preread модуля stream, позволяющая помещать имя пользователя и идентификатор клиента из пакета CONNECT протокола MQTT в переменные $mqtt_preread_username и $mqtt_preread_clientid.

  • Ограничение скорости отдачи MP4-файлов клиенту пропорционально битрейту с помощью директив mp4_limit_rate и mp4_limit_rate_after, снижающее нагрузку на полосу пропускания.

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

Исправления#

  • Если проксируемый сервер был единственным в группе, то он мог некорректно учитываться как unavailable в API статистики даже после восстановления работоспособности.

Изменения#

  • Теперь время, в течение которого проксируемый сервер находился в состоянии checking, не учитывается в downtime.

  • В стандартный шаблон prometheus_all.conf добавлены все дополнительные метрики Prometheus и возможные значения state у серверов upstream, присутствующие только в версии PRO.

Пакеты#

25.12.2023

22.01.2024


Angie PRO 1.3.2#

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

Исправления#

  • Активные проверки с флагом essential при обнаружении изначальной проблемы некорректно обрабатывали смену состояния проксируемого сервера с checking на unhealthy, из-за чего пользовательские запросы могли направляться на неработоспособный сервер.

  • Были возможны некорректные значения метрик в формате Prometheus, в значениях которых использовались отличные от $p8s_value переменные; на практике проблема могла наблюдаться с angie_http_upstreams_peers_state и angie_stream_upstreams_peers_state из стандартного шаблона prometheus_all.conf.

  • Некоторые попытки соединения с проксируемыми серверами могли не учитываться соответствующим образом в API статистики, если ошибка происходила моментально; проблема появилась в 1.3.0.

Пакеты#

04.12.2023

07.12.2023

12.12.2023


Angie PRO 1.3.1#

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

Безопасность#

  • Добавлены дополнительные ограничения при обработке потоков HTTP/2, чтобы лучше противостоять DoS-атаке «HTTP/2 Rapid Reset» (CVE-2023-44487).

Пакеты#

26.10.2023

13.11.2023


Angie PRO 1.3.0#

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

Добавления#

  • Возможность указывать в директиве location несколько строк для сопоставления, что позволяет объединить несколько блоков location с одинаковыми настройками и, таким образом, упростить конфигурацию за счет уменьшения дублирования.

  • Балансировка с учетом среднего времени получения заголовка ответа или полного ответа от проксируемых HTTP-серверов с настраиваемым коэффициентом сглаживания, использующая директивы least_time (PRO) и response_time_factor (PRO) в блоке upstream.

  • Экспорт различных метрик статистики в формате Prometheus с гибко настраиваемыми шаблонами при помощи новых директив prometheus и prometheus_template.

  • Статистика по среднему времени получения заголовка ответа и полного ответа от проксируемых HTTP-серверов в интерфейсе, предоставляемом директивой api, с возможностью настройки коэффициента сглаживания директивой response_time_factor (PRO) блока upstream.

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

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

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

  • Возможность привязки клиентских соединений к соединению с проксируемым сервером с помощью директивы bind_conn (PRO) в блоках upstream HTTP-модуля, позволяющая, в частности, успешно проксировать соединения с проверкой подлинности NT LAN Manager (NTLM).

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

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

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

Изменения#

  • Теперь при загрузке конфигурации OpenSSL используется appname angie.

Пакеты#


Angie PRO 1.2.0#

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

Добавления#

  • HTTP RESTful JSON интерфейс для изменения конфигурации, добавления и удаления проксируемых серверов в блоках upstream HTTP-модуля, а также директива state для долговременного сохранения этих изменений.

  • Директива upstream_probe (PRO) для активной проверки состояния серверов в блоке upstream HTTP-модуля путем отправки периодических тестовых запросов.

  • Поддержка сегментирования кэша в модуле HTTP proxy, которая позволяет в зависимости от произвольного параметра ответа кэшировать его на разных директориях (дисках), задаваемых дополнительным параметром path= директивы proxy_cache с использованием переменных.

  • Поддержка 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.

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

Изменения#

Пакеты#


Angie PRO 1.1.0-p1#

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

Добавления#

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

  • Переменная $upstream_sticky_status, принимающая значения new, hit или miss в зависимости от успеха направления запроса на релевантный проксируемый сервер с включенной привязкой сессий.


Angie PRO 1.1.0#

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

Добавления#

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

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

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

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

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

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

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

  • Произвольная настройка подписи на стандартных страницах ошибок и поля Server в заголовке ответа с помощью директивы server_tokens.

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

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

Пакеты#

07.04.2023

  • Пакеты для операционной системы ALT Linux.

12.05.2023

26.05.2023

  • Пакеты для операционной системы Astra Linux Special Edition.

13.06.2023

12.07.2023

31.07.2023