1056 lines
77 KiB
Ruby
1056 lines
77 KiB
Ruby
|
||
Изменения в Angie 1.11.8 18.06.2026
|
||
|
||
*) Безопасность: при проксировании специально созданного запроса на
|
||
gRPC-бэкенд с использованием директив "ignore_invalid_headers off;" и
|
||
"large_client_header_buffers" с большим значением могло происходить
|
||
переполнение буфера, что позволяло атакующему повредить память
|
||
рабочего процесса или вызвать его падение (CVE-2026-42055);
|
||
исправление портировано из nginx 1.31.2.
|
||
|
||
*) Безопасность: при обработке специально переданного ответа с
|
||
декодированием из UTF-8 через директиву "charset_map" могло
|
||
происходить чтение данных за границами буфера, что позволяло
|
||
атакующему отправить клиенту ограниченное содержимое памяти рабочего
|
||
процесса или вызвать его падение (CVE-2026-48142); исправление
|
||
портировано из nginx 1.31.2.
|
||
|
||
*) Исправление: IP-адрес без номера порта в директивах "acme_http_port"
|
||
или "acme_dns_port" приводил к падению мастер-процесса при чтении
|
||
конфигурации.
|
||
|
||
|
||
Изменения в Angie 1.11.7 15.06.2026
|
||
|
||
*) Добавление: совместимость с OpenSSL 4.0.
|
||
|
||
*) Исправление: в некоторых конфигурациях ответ на ACME DNS-проверку мог
|
||
отправляться не с того IP-адреса/интерфейса, на который был отправлен
|
||
запрос, что могло приводить к ошибке выпуска сертификата.
|
||
|
||
*) Исправление: при использовании Docker-модуля быстрое завершение
|
||
контейнеров сразу после старта могло вызывать падение рабочего
|
||
процесса.
|
||
|
||
*) Исправление: изменение параметров в директивах "metric_zone" или
|
||
"metric_complex_zone" для уже существующей зоны могло привести к
|
||
падению рабочего процесса при перезагрузке конфигурации.
|
||
|
||
*) Исправление: при использовании параметра "window=" метрики типа
|
||
"average mean" результат на некоторых периодах мог вычисляться
|
||
неправильно; в частности, вскоре после запуска системы на Linux
|
||
значения могли оставаться нулевыми.
|
||
|
||
*) Исправление: значения метрик типов "count" и "histogram" неправильно
|
||
выводились на 32-битных платформах после достижения 2^32-1.
|
||
|
||
*) Исправление: сборка завершалась ошибкой при использовании опции
|
||
./configure "--with-stream=dynamic" в сочетании с
|
||
"--with-stream_acme_module"; проблема появилась в 1.10.3.
|
||
|
||
|
||
Изменения в Angie 1.11.6 25.05.2026
|
||
|
||
*) Безопасность: при использовании директивы "rewrite" с регулярным
|
||
выражением, содержащим вложенные захваты PCRE, и строкой замены,
|
||
ссылающейся на несколько таких захватов, атакующий при некоторых
|
||
независящих от него обстоятельствах мог вызвать падение рабочего
|
||
процесса, а на системах без рандомизации адресного пространства —
|
||
выполнение произвольного кода (CVE-2026-9256); исправление
|
||
портировано из nginx 1.31.1.
|
||
|
||
|
||
Изменения в Angie 1.11.5 15.05.2026
|
||
|
||
*) Безопасность: при использовании директивы "rewrite" с неименованным
|
||
захватом (например, $1, $2) и строкой замены, содержащей символ "?",
|
||
за которой следует директива "rewrite", "if" или "set", атакующий при
|
||
некоторых независящих от него обстоятельствах мог вызвать падение
|
||
рабочего процесса, а на системах без рандомизации адресного
|
||
пространства — выполнение произвольного кода (CVE-2026-42945);
|
||
исправление портировано из nginx 1.31.0.
|
||
|
||
*) Безопасность: при использовании директивы "ssl_ocsp" во время
|
||
обработки ответов DNS-сервера могло произойти обращение к ранее
|
||
освобождённой памяти, что позволяло атакующему повредить память
|
||
рабочего процесса или вызвать его падение (CVE-2026-40701);
|
||
исправление портировано из nginx 1.31.0.
|
||
|
||
*) Безопасность: при использовании HTTP/3 атакующий мог выполнить
|
||
подмену IP-адреса и тем самым обойти ограничения или авторизацию в
|
||
некоторых конфигурациях (CVE-2026-40460); исправление портировано из
|
||
nginx 1.31.0.
|
||
|
||
*) Безопасность: при использовании директив "scgi_pass" или "uwsgi_pass"
|
||
атакующий, находясь в позиции посредника (MITM) и контролируя ответы
|
||
проксируемого сервера, мог вызвать избыточное выделение памяти или
|
||
чтение за пределами буфера, что позволяло отправить клиенту
|
||
содержимое памяти рабочего процесса или вызвать его падение
|
||
(CVE-2026-42946); исправление портировано из nginx 1.31.0.
|
||
|
||
*) Безопасность: при обработке специально созданного ответа с
|
||
декодированием из UTF-8 через директиву "charset_map" могло
|
||
происходить чтение данных за границами буфера рабочего процесса, что
|
||
позволяло атакующему при некоторых независящих от него
|
||
обстоятельствах отправить клиенту ограниченное содержимое памяти
|
||
рабочего процесса или вызвать его падение (CVE-2026-42934);
|
||
исправление портировано из nginx 1.31.0.
|
||
|
||
|
||
Изменения в Angie 1.11.4 25.03.2026
|
||
|
||
*) Безопасность: TLS-согласование с клиентом в stream-модуле могло
|
||
завершиться успешно при том, что OCSP отклонил клиентский сертификат
|
||
(CVE-2026-28755); исправление портировано из nginx 1.29.7.
|
||
|
||
*) Безопасность: в DAV-модуле при обработке COPY- или MOVE-запроса в
|
||
"location" с директивой "alias" могло произойти переполнение буфера,
|
||
что позволяло атакующему модифицировать исходный или целевой путь за
|
||
пределы корневой директории (CVE-2026-27654); исправление портировано
|
||
из nginx 1.29.7.
|
||
|
||
*) Безопасность: обработка специально созданного файла MP4-модулем могла
|
||
приводить к падению рабочего процесса, а также потенциально могла
|
||
иметь другие последствия (CVE-2026-32647); исправление портировано из
|
||
nginx 1.29.7.
|
||
|
||
*) Безопасность: обработка специально созданного файла в MP4-модуле на
|
||
32-битных платформах могла приводить к падению рабочего процесса, а
|
||
также потенциально могла иметь другие последствия (CVE-2026-27784);
|
||
исправление портировано из nginx 1.29.7.
|
||
|
||
*) Безопасность: когда использовался почтовый прокси-сервер, атакующий с
|
||
помощью PTR DNS-записи мог вставить данные в HTTP-запросы
|
||
аутентификации, а также в команду XCLIENT в SMTP-соединении к
|
||
проксируемому серверу (CVE-2026-28753); исправление портировано из
|
||
nginx 1.29.7.
|
||
|
||
*) Безопасность: если в почтовом прокси-сервере использовался метод
|
||
аутентификации CRAM-MD5 или APOP и были разрешены повторные попытки
|
||
аутентификации, то могло произойти падение рабочего процесса
|
||
(CVE-2026-27651); исправление портировано из nginx 1.29.7.
|
||
|
||
*) Исправление: редкие системные ошибки перед подключением к
|
||
проксируемому серверу могли повлиять на корректность статуса
|
||
проксируемых серверов в модулях HTTP и stream; в stream-модуле они
|
||
также могли привести к падению рабочего процесса; проблема появилась
|
||
в 1.9.1.
|
||
|
||
*) Исправление: в конфигурациях, где директивы "proxy_http_version 3" и
|
||
"proxy_set_header Host .." наследовались из блока "http", исходящие
|
||
HTTP/3-запросы могли отправляться без заголовка "Host".
|
||
|
||
|
||
Изменения в Angie 1.11.3 06.02.2026
|
||
|
||
*) Безопасность: атакующий, находясь в позиции посредника (MITM) перед
|
||
проксируемым сервером с использованием HTTPS, при некоторых
|
||
независящих от него обстоятельствах мог внедрить в ответ данные в
|
||
виде открытого текста до начала TLS-согласования (CVE-2026-1642);
|
||
исправление портировано из nginx 1.29.5.
|
||
|
||
|
||
Изменения в Angie 1.11.2 15.01.2026
|
||
|
||
*) Исправление: если BPF был отключен, то HTTP/3-запросы могли
|
||
завершаться с ошибкой "[alert] sendmsg() failed (90: Message too
|
||
large) while sending frames"; проблема появилась в 1.11.0.
|
||
|
||
*) Исправление: HTTP/3-запросы не принимались при прослушивании wildcard
|
||
IPv6-адреса и включённом BPF; проблема появилась в 1.11.0.
|
||
|
||
*) Исправление: при указании доменного имени в директиве
|
||
"docker_endpoint" подключения к Docker API и обновления групп
|
||
проксируемых серверов не происходили.
|
||
|
||
|
||
Изменения в Angie 1.11.1 30.12.2025
|
||
|
||
*) Изменение: теперь, если в директиве "acme_http_port" указан только
|
||
порт без IP (значение по умолчанию) и есть слушающие на этом порту
|
||
блоки "server", то обработка HTTP-подверждений для заданного порта в
|
||
ACME работает только на указанных IP-адресах в директивах "listen"
|
||
данных блоков; попытки слушать на всех остальных IP, как было раньше,
|
||
не производится; это делает настройку более гибкой и предотвращает
|
||
возможную проблему при обновлении с предыдущих версий на
|
||
конфигурациях, где были только блоки "server", слушающие на 80 порту
|
||
и конкретных IP-адресах.
|
||
|
||
*) Исправление: HTTP/2-запросы не учитывались в серверных зонах
|
||
статистики; проблема появилась в 1.11.0.
|
||
|
||
*) Исправление: если ACME-клиент был отключен в конфигурации и не имел
|
||
ранее полученного сертификата, запрос к API статистики для данного
|
||
клиента мог привести к падению рабочего процесса.
|
||
|
||
*) Исправление: если в качестве ключа директивы "status_zone", заданной
|
||
на уровне блоков "server", использовались переменные "$http_host" или
|
||
"$cookie_*", то HTTP/3-запросы могли не учитываться в указанной зоне
|
||
статистики.
|
||
|
||
|
||
Изменения в Angie 1.11.0 24.12.2025
|
||
|
||
*) Изменение: переменная "$http_host" в запросах по протоколу HTTP/3
|
||
теперь инициализируется из значения псевдозаголовка ":authority",
|
||
если заголовок "Host" не был передан, что является нормальным для
|
||
клиентов; до этого отличия в поведении от протоколов младших версий
|
||
могли создавать проблемы в конфигурациях с использованием переменной
|
||
"$http_host".
|
||
|
||
*) Изменение: если все HTTP-сервера в upstream-группе оказываются
|
||
недоступны или возвращают ошибку, то теперь всегда возвращается
|
||
собственная страница ошибки вместо принятой от последнего сервера,
|
||
когда тот вернул ошибочный статус согласно настройкам директивы
|
||
"proxy_next_upstream" (и ей подобных); это позволяет получить
|
||
консистентное поведение во всех случаях.
|
||
|
||
*) Изменение: параметр "REQUEST_METHOD" в файлах конфигурации
|
||
"fastcgi.conf", "fastcgi_params", "uwsgi_params" и "scgi_params"
|
||
теперь устанавливается через переменную "$upstream_request_method",
|
||
которая принимает значение GET для HEAD-запросов при настройке
|
||
кэширования; это предотвращает проблему, когда ранее в результате
|
||
HEAD-запроса могло происходить сохранение пустых ответов, которые
|
||
затем отдавались на GET-запросы, так как в типичной конфигурации
|
||
метод запроса не является ключом кэширования.
|
||
|
||
*) Изменение: максимальный размер ответа от ACME-сервера теперь
|
||
ограничивается новой директивой "acme_max_response_size", а не
|
||
параметром "max_cert_size=" директивы "acme_client"; заданного по
|
||
умолчанию значения достаточно для большинства случаев, но в случае,
|
||
если обновление завершается ошибкой "[error] too big subrequest
|
||
response while sending to client", его следует увеличить.
|
||
|
||
*) Изменение: значение по умолчанию директивы "variables_hash_max_size"
|
||
в HTTP-модуле увеличено до 2048, чтобы снизить вероятность появления
|
||
предупреждений о неоптимальном построении хэша из-за добавления
|
||
множества новых переменных за последние годы: "[warn] could not build
|
||
optimal variables_hash, you should increase either
|
||
variables_hash_max_size: 1024 or variables_hash_bucket_size: 64;
|
||
ignoring variables_hash_bucket_size".
|
||
|
||
*) Добавление: произвольно конфигурируемый сбор статистики с помощью
|
||
нового модуля Metrics в HTTP; позволяет, используя различные методы
|
||
(счетчики, гистограммы, скользящие средние и др.), агрегировать любые
|
||
данные на разных стадиях обработки запроса в реальном времени с
|
||
помощью переменных по заданным ключам и отдавать их в секции
|
||
"/status/http/metric_zones/" API статистики (с поддержкой
|
||
Prometheus), тем самым добавляя встроенный мощный аналитический
|
||
инструмент для всего HTTP-трафика.
|
||
|
||
*) Добавление: поддержка ALPN-верификации для ACME, задаваемая при
|
||
помощи значения "alpn" в качестве параметра "challenge" директивы
|
||
"acme_client"; позволяет запрашивать мультидоменные сертификаты,
|
||
держа открытым только HTTPS-порт.
|
||
|
||
*) Добавление: информация об ACME-клиентах и процедуре получения
|
||
сертификата в разделе "/status/http/acme_clients/" API статистики (с
|
||
поддержкой Prometheus).
|
||
|
||
*) Добавление: добавлена поддержка Encrypted Client Hello (ECH) в HTTP и
|
||
stream SSL-модулях; директива "ssl_encrypted_hello_key" позволяет
|
||
задать файл с приватным ключом; переменная "$ssl_encrypted_hello"
|
||
содержит информацию об использовании ECH.
|
||
Спасибо Максиму Дунину (freenginx).
|
||
|
||
*) Добавление: конвертация формата изображения с помощью параметра
|
||
"convert" директивы "image_filter".
|
||
|
||
*) Добавление: поддержка форматов AVIF и HEIC в модуле Image Filter.
|
||
|
||
*) Добавление: поддержка PROXY-протокола второй версии в stream-модуле в
|
||
сторону проксируемых серверов с возможностью передачи произвольных
|
||
значений через TLV-записи с помощью директив "proxy_protocol_tlv", в
|
||
которых можно указывать строки с переменными.
|
||
|
||
*) Добавление: переменная "$upstream_request_method", содержащая метод
|
||
запроса к проксируемому серверу, который может отличаться от метода
|
||
запроса клиента при использовании кэширования или директивы
|
||
"proxy_method"; позволяет легко избежать распространенной проблемы в
|
||
конфигурациях, когда на GET-запрос возвращается закэшированный пустой
|
||
HEAD-ответ, а также избежать кэширования HEAD и GET отдельно.
|
||
|
||
*) Добавление: теперь HTTP-верификация в ACME может работать без блоков
|
||
"server" с директивой "listen 80" в конфигурации; при необходимости
|
||
слушающий порт можно изменить с помощью новой директивы
|
||
"acme_http_port".
|
||
|
||
*) Добавление: возможность подсчета количества элементов в списках и
|
||
объектах при экспорте метрик Prometheus; пути, оканчивающиеся косой
|
||
чертой, теперь возвращают количество элементов в соответствующей
|
||
коллекции API.
|
||
|
||
*) Добавление: переменная "$sent_body", содержащая тело ответа
|
||
подзапроса или запроса от клиентского модуля.
|
||
|
||
*) Добавление: поддержка методов аутентификации XOAUTH2 и OAUTHBEARER в
|
||
почтовом прокси-сервере.
|
||
Спасибо Rob Mueller и Максиму Дунину (freenginx).
|
||
|
||
*) Добавление: параметр "route" директивы "sticky" теперь может
|
||
содержать произвольные строки с любым количеством переменных.
|
||
|
||
*) Добавление: в модуле ACME автоматически вычисляется приблизительный
|
||
размер получаемого сертификата, что устраняет необходимость
|
||
увеличивать параметр "max_cert_size" директивы "acme_client" в
|
||
случаях выпуска сертификата с очень большим количеством доменов;
|
||
параметр оставлен для случаев, когда ручная настройка всё же
|
||
понадобится.
|
||
|
||
*) Добавление: переменная "$upstream_cache_key", содержащая используемый
|
||
ключ кэширования.
|
||
Спасибо Кириллу Коринскому и Максиму Дунину (freenginx).
|
||
|
||
*) Добавление: поддержка сборки с SSL-библиотекой AWS-LC.
|
||
Спасибо Петру Сикоре (piotr at aviatrix.com).
|
||
|
||
*) Добавление: в Makefile добавлена цель "test", запускающая тесты.
|
||
|
||
*) Добавление: вся функциональность nginx 1.29.3, за исключением
|
||
директив "add_header_inherit" и "add_trailer_inherit", качество
|
||
проработки которых крайне низкое.
|
||
|
||
*) Исправление: процедуры перезагрузки конфигурации и обновления
|
||
исполняемого файла на лету теперь работают штатно с
|
||
HTTP/3-соединениями; реализован корректный роутинг соединений ко всем
|
||
существующим процессам при помощи модуля BPF.
|
||
|
||
*) Исправление: если все сервера в upstream-группе оказывались
|
||
недоступны или возвращали ошибку, то ошибочный ответ последнего мог
|
||
посчитаться успешным несмотря на настройки директивы
|
||
"proxy_next_upstream".
|
||
|
||
*) Исправление: когда путь в "try_files" был короче, чем префикс в
|
||
соответствующем блоке "location", использование "proxy_pass" с URI
|
||
могло приводить к падению рабочего процесса; исправление портировано
|
||
из nginx 1.29.4.
|
||
|
||
*) Исправление: если в блоке "stream" не было ссылающихся на ACME-клиент
|
||
директив "acme", то при указании в нём соответствующих переменных
|
||
"$acme_cert_*" конфигурация не принималась с ошибкой "unknown
|
||
variable"; проблема появилась в 1.10.3.
|
||
|
||
*) Исправление: если было настроено сохранение индекса кэша в файл,
|
||
тестирование конфигурации во время работы могло завершаться ошибками
|
||
типа "[alert] mmap() failed (17: File exists)" и "[alert] munmap()
|
||
failed (22: Invalid argument)".
|
||
|
||
*) Исправление: директива "proxy_method" игнорировалась при срабатывании
|
||
директивы "proxy_cache_convert_head on".
|
||
|
||
*) Исправление: длительность тайм-аута, задаваемого опцией
|
||
"fail_timeout" директивы "server" блока "upstream", была на 1 секунду
|
||
больше, чем указано.
|
||
|
||
*) Исправление: Angie не собирался на NetBSD 10.0.
|
||
Спасибо Максиму Дунину (freenginx).
|
||
|
||
*) Исправление: загрузка модулей, собранных для Angie PRO, могла
|
||
приводить к некорректной работе и падениям из-за несовместимости ABI;
|
||
теперь подобные ошибочные конфигурации запрещены, и выдается
|
||
соответствующее сообщение об ошибке.
|
||
|
||
|
||
Изменения в Angie 1.10.3 13.11.2025
|
||
|
||
*) Безопасность: обработка специально созданного логина/пароля при
|
||
использовании метода аутентификации "none" в SMTP-модуле могла
|
||
приводить к отправке серверу аутентификации части содержимого памяти
|
||
рабочего процесса (CVE-2025-53859); исправление портировано из nginx
|
||
1.29.1.
|
||
|
||
*) Исправление: если при использовании опции "renew_on_load" директивы
|
||
"acme_client" присутствовал ранее полученный сертификат, то он не
|
||
загружался, что могло ограничивать работоспособность до окончания
|
||
обновления сертификата; если сертификат отсутствовал, то попытки
|
||
получения нового завершались ошибкой "[alert] lseek() failed (9: Bad
|
||
file descriptor)".
|
||
|
||
*) Исправление: если ACME-клиент использовался в блоке "stream", но не в
|
||
блоке "http", он деактивировался с предупреждением "[warn] ACME
|
||
client .. is defined but not used" и не получал сертификата.
|
||
|
||
*) Исправление: если все директивы "acme_client" содержали параметр
|
||
"enabled=off" и соответствующие переменные "$acme_cert_*"
|
||
использовались в конфигурации, то Angie не запускался, сообщая об
|
||
ошибке "[emerg] unknown acme_cert_* variable".
|
||
|
||
*) Исправление: если ACME-клиент использовался в блоке "stream", который
|
||
располагался перед блоком "http", то Angie не запускался, сообщая об
|
||
ошибке "[emerg] ACME client .. is not defined but referenced".
|
||
|
||
*) Исправление: некоторые конфигурации блока "client" могли вызывать
|
||
падение рабочих процессов при использовании переменных, связанных с
|
||
отсутствующим в данном случае входящим соединением.
|
||
|
||
|
||
Изменения в Angie 1.10.2 21.08.2025
|
||
|
||
*) Исправление: настройки прокси-модуля в блоке "http" могли нарушать
|
||
работу модулей, которые используют блок "client" для исходящих
|
||
запросов; проблема появилась в 1.10.0.
|
||
|
||
*) Исправление: включение "proxy_ignore_client_abort" совместно с
|
||
модулями, использующими блок "client" для исходящих запросов, могло
|
||
приводить к падению рабочих процессов; проблема появилась в 1.10.0.
|
||
|
||
*) Исправление: если в группе проксируемых серверов был ранее
|
||
сконфигурирован один сервер, то серверы, добавленные через Docker
|
||
API, могли не участвовать в балансировке.
|
||
|
||
*) Исправление: если единственный сервер в группе проксируемых серверов
|
||
был добавлен посредством Docker API, то в случае признания его
|
||
недоступным он мог исключаться из балансировки.
|
||
|
||
|
||
Изменения в Angie 1.10.1 17.07.2025
|
||
|
||
*) Изменение: директивы, заданные на уровне блока "client", теперь могут
|
||
наследоваться только в явно объявленных внутри него блоках "location"
|
||
и не оказывают влияния на настройки других модулей, неявно
|
||
использующих блок "client" для исходящих запросов.
|
||
|
||
*) Добавление: поддержка нескольких блоков "client" позволяет
|
||
сгруппировать общие настройки для разных блоков "location" внутри
|
||
каждого из них, что помогает избежать дублирования конфигурации.
|
||
|
||
*) Исправление: параметр "reuseport" в директиве "listen" приводил к
|
||
тому, что все соединения на указанный адрес и порт обслуживались
|
||
только одним рабочим процессом; проблема появилась в 1.10.0.
|
||
|
||
*) Исправление: HTTP/3-согласование с проксируемым сервером могло
|
||
завершаться ошибкой при использовании библиотеки OpenSSL версии 3.5.0
|
||
или выше, если на сервере был активен режим "retry" QUIC-протокола.
|
||
|
||
*) Исправление: сборка модулей HTTP/2 и HTTP/3 компилятором GCC 15
|
||
завершалась ошибкой.
|
||
|
||
*) Исправление: сборка компилятором GCC с флагом -O3 могла завершаться
|
||
ошибкой.
|
||
|
||
|
||
Изменения в Angie 1.10.0 03.07.2025
|
||
|
||
*) Добавление: автоматическое получение и динамическое обновление групп
|
||
проксируемых серверов на основе меток Docker-контейнеров (или
|
||
Podman), настраиваемое с помощью директивы "docker_endpoint"; это
|
||
позволяет на указанном Docker API в реальном времени отслеживать
|
||
запуск и остановку контейнеров и, соответственно, добавлять или
|
||
удалять их адреса из списка "upstream" согласно прописанным в них
|
||
специальным меткам и без перезагрузки конфигурации.
|
||
|
||
*) Добавление: поддержка автоматического получения TLS-сертификатов по
|
||
протоколу ACME в stream-модуле, настраиваемое с использованием
|
||
директивы "acme" и переменных вида "$acme_cert_*" и
|
||
"$acme_cert_key_*".
|
||
|
||
*) Добавление: поддержка приема соединений по протоколу Multipath TCP
|
||
(MPTCP), включаемая с помощью опции "multipath" директивы "listen".
|
||
Спасибо Максиму Дунину (freenginx), Максиму Дурову и Энтони Дорену.
|
||
|
||
*) Добавление: блок "client", позволяющий задавать дополнительную
|
||
конфигурацию для внутренних HTTP-запросов, исходящих от различных
|
||
модулей.
|
||
|
||
*) Добавление: вся функциональность nginx 1.27.5, включая контроль
|
||
перегрузки CUBIC в соединениях QUIC.
|
||
|
||
|
||
Изменения в Angie 1.9.1 29.05.2025
|
||
|
||
*) Добавление: возможность задать в директиве "acme_dns_port" не только
|
||
номер порта, но и IP-адрес; поддерживаются IPv4 и IPv6.
|
||
|
||
*) Исправление: одновременное наличие в директивах "server_name"
|
||
wildcard-домена и совпадающих с ним доменов третьего уровня приводило
|
||
к ошибке ACME-сервера при выпуске сертификата для этих доменов в
|
||
рамках одного ACME-клиента.
|
||
|
||
*) Исправление: в stream-модуле после успешного соединения с
|
||
проксируемым сервером во время пассивной проверки его статус в API
|
||
статистики ошибочно продолжал отображаться как "unavailable" до
|
||
завершения сессии.
|
||
|
||
*) Исправление: запросы HTTP/3 могли зависать и завершаться по таймауту;
|
||
исправление портировано из nginx 1.29.0.
|
||
|
||
*) Исправление: ранняя ошибка при установлении соединения HTTP/3 с
|
||
проксируемым сервером могла приводить к падению рабочего процесса.
|
||
|
||
*) Исправление: при проксировании по протоколу HTTP/3 число активных
|
||
соединений могло отображаться в статистике некорректно.
|
||
|
||
|
||
Изменения в Angie 1.9.0 11.04.2025
|
||
|
||
*) Добавление: возможность задать файл в директиве "proxy_cache_path", в
|
||
который между запусками сервера будет сохраняться содержимое зоны
|
||
разделяемой памяти с индексом кэша; что избавляет от необходимости
|
||
подгружать кэш после перезагрузки и позволяет практически сразу
|
||
вернуть сервер в работу.
|
||
|
||
*) Добавление: поддержка механизма TLS 1.3 Early Data (0-RTT) в
|
||
stream-модуле с помощью директивы "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" (аналогичный функционал существует
|
||
с версии 1.8.0).
|
||
|
||
*) Изменение: параметр "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" с переменными
|
||
работало некорректно.
|
||
|
||
|
||
Изменения в Angie 1.8.3 02.04.2025
|
||
|
||
*) Исправление: статистика "status_zone" в блоке "server" HTTP-модуля
|
||
могла считаться некорректно, если запросы попадали в разные зоны
|
||
статистики в рамках одного соединения или на раннем этапе обработки
|
||
запроса происходила ошибка; проблема появилась в 1.8.2.
|
||
|
||
|
||
Изменения в Angie 1.8.2 13.02.2025
|
||
|
||
*) Безопасность: недостаточная проверка в обработке виртуальных серверов
|
||
при использовании SNI в TLSv1.3 позволяла повторно использовать
|
||
SSL-сессию в контексте другого виртуального сервера, чтобы обойти
|
||
проверку клиентских SSL-сертификатов (CVE-2025-23419); исправление
|
||
портировано из nginx 1.27.4.
|
||
|
||
*) Исправление: запросы к API для получения значений статистики из
|
||
отдельной зоны, которая была задана через переменные, могли приводить
|
||
к зацикливанию рабочего процесса.
|
||
|
||
*) Исправление: HTTP/3-запросы не учитывались в зонах статистики;
|
||
проблема появилась в 1.8.0.
|
||
|
||
*) Исправление: TLS-согласования по протоколу QUIC не учитывались в
|
||
статистике по SSL.
|
||
|
||
*) Исправление: использование доменных имён, начинающихся с точки, в
|
||
директиве "server_name" могло привести к ошибке обновления
|
||
сертификата по протоколу ACME.
|
||
|
||
|
||
Изменения в Angie 1.8.1 28.12.2024
|
||
|
||
*) Исправление: использование директивы "status_zone" в блоке "server"
|
||
HTTP-модуля приводило к избыточному логированию пустых запросов в
|
||
"access_log" во время TLS-согласований; проблема появилась в 1.8.0.
|
||
|
||
*) Исправление: ошибки декодирования потока HTTP/3 могли приводить к
|
||
падению рабочего процесса при закрытии QUIC-соединения; исправление
|
||
портировано из nginx 1.27.4.
|
||
|
||
*) Исправление: отправка пакетов с согласованием версии протокола QUIC
|
||
могла привести к бесконечному циклу обмена пакетами; исправление
|
||
портировано из nginx 1.27.4.
|
||
|
||
*) Исправление: использование DNS-валидации без хуков в ACME-модуле на
|
||
некоторых конфигурациях могло привести к падению рабочего процесса.
|
||
|
||
|
||
Изменения в Angie 1.8.0 19.12.2024
|
||
|
||
*) Изменение: при плавном завершении старых рабочих процессов
|
||
keepalive-соединения теперь закрываются только после истечения
|
||
таймаута, заданного директивой "lingering_timeout"; такое поведение
|
||
позволяет предотвратить возможные ошибки на клиенте при получении
|
||
ответа в этот момент.
|
||
Спасибо Максиму Дунину (freenginx).
|
||
|
||
*) Изменение: отключено кэширование значений переменных stream-модуля
|
||
"$ssl_server_name", "$ssl_server_cert_type", "$ssl_preread_protocol"
|
||
и "$ssl_preread_server_name", что позволит получить актуальные
|
||
значения при использовании виртуальных серверов.
|
||
|
||
*) Добавление: поддержка валидации "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.
|
||
|
||
*) Исправление: HTTP/3-клиенты могли отключаться по таймауту при
|
||
использовании 0-RTT; исправление портировано из nginx 1.27.4.
|
||
|
||
*) Исправление: проксирование по HTTP/3 с использованием переменных в
|
||
директиве "proxy_pass" и без указания блока "upstream" могло
|
||
приводить к падению рабочего процесса.
|
||
|
||
*) Исправление: кэширование HTTP/3-ответов при использовании
|
||
динамической таблицы сжатия заголовка могло привести к падению
|
||
рабочего процесса.
|
||
|
||
*) Исправление: некоторые SSL-рукопожатия могли не учитываться в
|
||
счетчиках статистики для stream-модуля.
|
||
|
||
*) Исправление: настройки HTTP/3-проксирования указанные на уровне
|
||
"http" или "server" могли игнорироваться.
|
||
|
||
*) Исправление: при проксировании по протоколу HTTP/3 c включенной
|
||
поддержкой NTLS директива "proxy_ssl_certificate" не работала.
|
||
|
||
|
||
Изменения в Angie 1.7.0 19.09.2024
|
||
|
||
*) Изменение: обновлены текстовые описания кодов HTTP-ответов в
|
||
соответствии с RFC 9110.
|
||
Спасибо Максиму Дунину (freenginx) и Михилу В. Бейену.
|
||
|
||
*) Изменение: теперь перед HTTP-запросом допускается не более одной
|
||
пустой строки для улучшения защиты против DoS-атак.
|
||
Спасибо Максиму Дунину (freenginx).
|
||
|
||
*) Изменение: запрещены имена полей заголовка HTTP/1.x без двоеточия на
|
||
конце; такие некорректные заголовки от клиента или проксируемого
|
||
сервера теперь будут приводить к возврату ошибки.
|
||
Спасибо Максиму Дунину (freenginx) и Максиму Евменкину.
|
||
|
||
*) Изменение: при чтении тела запроса с использованием HTTP/1.1 "chunked
|
||
transfer encoding" суммарный размер игнорируемых "chunk extensions" и
|
||
полей "trailer header" теперь ограничен директивой
|
||
"client_max_body_size" для улучшения защиты против DoS-атак.
|
||
Спасибо Максиму Дунину (freenginx) и Бартеку Новотарскому.
|
||
|
||
*) Изменение: MIME-тип в файле конфигурации "mime.types" для расширения
|
||
bmp изменён на "image/bmp", для расширения rar - на
|
||
"application/vnd.rar", а для расширений deb и udeb теперь указан
|
||
"application/vnd.debian.binary-package".
|
||
Спасибо Юрию Изоркину.
|
||
|
||
*) Добавление: принудительное закрытие соединений к проксируемому
|
||
серверу при удалении его из группы, настраиваемое с помощью директив
|
||
"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).
|
||
|
||
|
||
Изменения в Angie 1.6.2 16.08.2024
|
||
|
||
*) Безопасность: обработка специально созданного файла MP4-модулем могла
|
||
приводить к падению рабочего процесса (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 31.05.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
|
||
|
||
*) Изменение: теперь ACME-клиенты не игнорируют ранее сохраненные
|
||
сертификаты, если они просрочены или выпущены для отличающегося
|
||
списка доменных имён, а используют их, пока идет обновление.
|
||
|
||
*) Исправление: механизм "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).
|
||
|
||
|
||
Изменения в 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".
|
||
|
||
|
||
Изменения в Angie 1.4.1 15.02.2024
|
||
|
||
*) Безопасность: при использовании HTTP/3 в рабочем процессе во время
|
||
обработки специально созданной QUIC-сессии могла произойти ошибка
|
||
сегментации (CVE-2024-24989); при этом Angie, начиная ещё с версии
|
||
1.4.0, не подвержен уязвимости CVE-2024-24990.
|
||
|
||
|
||
Изменения в 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 статистики
|
||
даже после восстановления работоспособности.
|
||
|
||
|
||
Изменения в 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.
|
||
|
||
|
||
Изменения в Angie 1.3.1 18.10.2023
|
||
|
||
*) Безопасность: добавлены дополнительные ограничения при обработке
|
||
потоков HTTP/2, чтобы лучше противостоять DoS-атаке "HTTP/2 Rapid
|
||
Reset" (CVE-2023-44487).
|
||
|
||
|
||
Изменения в 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 и 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 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 и
|
||
выше.
|
||
|
||
|
||
Изменения в 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.
|
||
|