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

2024#

Angie 1.7.0#

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

Добавления#

  • Принудительное закрытие соединений к проксируемому серверу при удалении его из группы, настраиваемое с помощью директив proxy_connection_drop, grpc_connection_drop, fastcgi_connection_drop, scgi_connection_drop и uwsgi_connection_drop.

  • Счетчики отдельных типов отправленных DNS-запросов в API статистики резолвера, собираемой параметром status_zone директивы resolver.

  • Переменная $ssl_server_cert_type, содержащая тип выбранного сертификата при приеме TLS-соединения.

  • Отключение создания PID-файла с помощью параметра off в директиве pid, что может быть полезным для неизменяемых образов и при непосредственном управлении менеджером процессов. Спасибо Максиму Дунину (freenginx).

  • Создание PID-файла теперь выполняется атомарно через промежуточный временный файл, что исключает момент, когда файл уже появился в директории, но еще пуст, и позволяет внешним программам проще и надежнее с ним работать.

  • Теперь при переконфигурации не делается попытка пересоздать PID-файл, если имя в директиве pid изменилось, но указывает на тот же файл через симлинки, что, в частности, позволяет избежать проблем в системах во время миграции с /var/run/angie.pid на /run/angie.pid. Спасибо Максиму Дунину (freenginx).

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

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

  • Опция --feature-cache скрипта ./configure для кэширования результатов его работы с целью оптимизации массовой сборки модулей или кросс-компиляции.

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

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

  • При запуске под systemd могли возникать ошибки PID file ... not readable (yet?) after start и Failed to parse PID from file.... Спасибо Максиму Дунину (freenginx).

Изменения#

  • Обновлены текстовые описания кодов HTTP-ответов в соответствии с RFC 9110. Спасибо Максиму Дунину (freenginx) и Michiel W. Beijen.

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

  • Запрещены имена полей заголовка HTTP/1.x без двоеточия на конце; такие некорректные заголовки от клиента или проксируемого сервера теперь будут приводить к возврату ошибки. Спасибо Максиму Дунину (freenginx) и Максиму Евменкину.

  • При чтении тела запроса с использованием HTTP/1.1 "chunked transfer encoding" суммарный размер игнорируемых "chunk extensions" и полей "trailer header" теперь ограничен директивой client_max_body_size для улучшения защиты против DoS-атак. Спасибо Максиму Дунину (freenginx) и Bartek Nowotarski.

  • MIME-тип в файле конфигурации mime.types для расширения :bmp: изменён на image/bmp, для расширения rar u2014 на application/vnd.rar, а для расширений deb и udeb теперь указан application/vnd.debian.binary-package. Спасибо Юрию Изоркину.

Пакеты#


Angie 1.6.2#

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

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

  • Обработка специально созданного MP4-файла модулем ngx_http_mp4_module могла приводить к падению рабочего процесса (CVE-2024-7347); исправление портировано из nginx 1.27.1.


Angie 1.6.1#

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

Добавления#

  • Счетчик passed в зоне API статистики, задаваемой директивой status_zone модуля stream, для подсчета соединений, переданных на обработку в другие слушающие сокеты при помощи директив pass.

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

  • При использовании виртуальных серверов или директивы pass в модуле stream соединения могли учитываться некорректно в API статистики.

  • На конфигурациях с 5 ACME-клиентами и более могли происходить падения рабочих процессов; проблема появилась в 1.6.0.

  • Обработка закэшированных ответов с заголовком X-Accel-Redirect могла приводить к падению рабочего процесса. Спасибо Максиму Дунину (freenginx) и Иржи Сетничке.

Пакеты#


Angie 1.6.0#

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

Добавления#

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

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

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

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

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

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

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

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

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

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

Пакеты#


Angie 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 1.5.1#

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

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

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

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

  • Механизм 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 1.5.0#

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

Добавления#

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

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

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

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

  • Теперь ключ -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 1.4.1#

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

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

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

Пакеты#

2023#

Angie 1.4.0#

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

Добавления#

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

  • Механизм плавного ввода проксируемого сервера в работу после сбоя с помощью опции 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 статистики даже после восстановления работоспособности.

Пакеты#

18.12.2023

25.12.2023

22.01.2024


Angie 1.3.2#

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

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

  • Были возможны некорректные значения метрик в формате 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


Angie 1.3.1#

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

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

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

Пакеты#

26.10.2023

13.11.2023


Angie 1.3.0#

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

Добавления#

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

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

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

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

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

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

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

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

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

  • Сборка завершалась ошибкой при использовании опций ./configure --without-http_upstream_zone_module или --without-stream_upstream_zone_module; ошибка появилась в 1.2.0.

Изменения#

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

Пакеты#


Angie 1.2.0#

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

Добавления#

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

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

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

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

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

  • Возможность сжатия модулем gzip ответов со статусом "207 Multi-Status". Спасибо DBotThePony.

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

Пакеты#

13.06.2023

12.07.2023

28.07.2023

18.08.2023


Angie 1.1.0#

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

Добавления#

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

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

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

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

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

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

  • Сборка завершалась ошибкой из-за ложного предупреждения компилятора при использовании GCC 9 и старее с оптимизацией -O2 и выше.

Пакеты#

15.03.2023

07.04.2023

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

11.05.2023

26.05.2023

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


2022#

Angie 1.0.0#

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

Добавления#

  • Директива 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.

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