Została wydana wersja wysokowydajnego serwera HTTP oraz wieloprotokołowego serwera proxy Angie 1.8.0, rozwidlenia od Nginx, stworzonego przez grupę byłych deweloperów projektu, którzy odeszli z firmy F5 Network. Źródłowe kody Angie są dostępne na licencji BSD. Projekt otrzymał certyfikaty zgodności z rosyjskimi systemami operacyjnymi Red OS, Astra Linux Special Edition, Rosa Chrome Server, Alt i wersją FSTEK Alt.
Rozwojem projektu zajmuje się firma „Web-server”, założona w jesieni 2022 roku, która otrzymała inwestycje w wysokości 1 miliona dolarów. W gronie współwłaścicieli firmy Web-server znajdują się: Walentyn Barteniew (lider zespołu rozwijającego produkt Nginx Unit), Iwan Polujanow (były lider front-end developerów Rambler i Mail.Ru), Oleg Mamontow (lider zespołu wsparcia technicznego NGINX Inc) oraz Rusłan Jermilow (ru@FreeBSD.org).
Zmiany w Angie 1.8.0:
- Rozszerzone możliwości modułu http_acme, przeznaczonego do automatyzacji uzyskiwania i aktualizacji certyfikatów z urzędów certyfikacji Let’s Encrypt, który korzysta z protokołu ACME (Automatic Certificate Management Environment):
- Dodano wsparcie dla metody weryfikacji DNS-01, niezbędnej do uzyskania certyfikatów z maskami obejmującymi grupę subdomen (np. *.example.com).
- Dodano dyrektywę „acme_hook”, przez którą można skonfigurować wywołanie zewnętrznych aplikacji z obsługiwaczami procesu potwierdzania własności domeny. Takie obsługiwacze mogą być używane do integracji z zewnętrznymi usługami i dostawcami DNS.
- Aby uprościć diagnostykę, do logów dodano dodatkowe informacje, takie jak powód aktualizacji certyfikatu, pełna lista domenów, identyfikator konta klienta, informacje o nieaktywności oraz weryfikowana domena.
- Do dyrektywy „acme_client” dodano parametr „account_key”, aby można było ponownie wykorzystać istniejący klucz dostępu do serwera ACME, zamiast automatycznie generować nowy klucz.
- Wprowadzono możliwość wskazywania zmiennych w dyrektywie „status_zone”, wykorzystywanej w modułach stream i http. Zmienne można używać do dynamicznego zbierania statystyk w odniesieniu do poszczególnych wirtualnych hostów, określonych w jednym bloku „location” lub „server”. server { listen 80; server_name *.example.com; status_zone $host zone=host_zone:10; location / { proxy_pass http://example.com; } }
- W module kompresji gzip zapewniono zgodność z biblioteką zlib-ng 2.2 i nowszymi wersjami.
- Z projektu freenginx przeniesiono realizację dyrektywy max_headers, która ogranicza maksymalną liczbę nagłówków HTTP w żądaniu, co może być przydatne dla ochrony przed atakami DoS.
- Dodano dyrektywy http3_max_table_capacity oraz proxy_http3_max_table_capacity, aby ograniczyć rozmiar tabeli używanej do kompresji nagłówków w HTTP/3.
- Dodano wsparcie dla krzyżowej kompilacji — teraz budowanie możliwe jest bez konieczności uruchamiania skryptów autotest na docelowej platformie.
- Z freenginx przeniesiono zmiany, które rozwiązują problem z błędami dostarczania odpowiedzi podczas łagodnego zakończenia procesów obsługujących (gracefully shutdown) — połączenia keep-alive są teraz zamykane tylko po upływie limitu czasu określonego w dyrektywie lingering_timeout.
- Aby uzyskać aktualne wartości przy użyciu wirtualnych hostów, w module stream wyłączono buforowanie zmiennych $ssl_server_name, $ssl_server_cert_type, $ssl_preread_protocol i $ssl_preread_server_name.
- Z repozytorium projektu nginx przeniesiono zmiany zaproponowane w wersji nginx 1.27.3.
Źródło: opennet.ru
