Opublikowano wersję wydajnego serwera HTTP i wieloprotocolowego serwera proxy Angie 1.11.0, odgałęzionego od Nginx przez grupę byłych deweloperów projektu, którzy odeszli z firmy F5 Network. Kody źródłowe Angie są dostępne na licencji BSD. Projekt uzyskał certyfikaty zgodności z rosyjskimi systemami operacyjnymi Red OS, Astra Linux Special Edition, Rosa Chrome Server, Alt oraz wersjami Alt zgodnymi z FSTEK.
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.11.0:
- Dodano moduł „http-metric”, który pozwala w czasie rzeczywistym zbierać różne metryki HTTP na różnych etapach przetwarzania żądania oraz agregować je przy użyciu różnych metod (liczniki, histogramy, średnie ruchome i inne). Dostęp do zebranych danych możliwy jest w formatach JSON i Prometheus za pośrednictwem HTTP API (\/status\/http\/metric_zones\/), a także przez zmienne i logi.
- Rozszerzono możliwości związane z obsługą protokołu ACME: dodano obsługę weryfikacji ALPN, ulepszono wyświetlanie statusu odnawiania certyfikatów w HTTP API \/status\/http\/acme_clients\/ (z obsługą Prometheus), uproszczono konfigurację potwierdzeń HTTP oraz zapewniono dostęp do certyfikatów z bloku stream. Weryfikacja HTTP w ACME może teraz działać bez bloków serwera z dyrektywą listen 80 w konfiguracji (do zmiany portu nasłuchującego zaproponowano dyrektywę acme_http_port). Zapewniono automatyczne obliczanie przybliżonego rozmiaru otrzymywanego certyfikatu (dla certyfikatów z dużą liczbą domen można teraz obejść się bez ustawiania parametru max_cert_size w dyrektywie acme_client). Maksymalny rozmiar odpowiedzi z serwera ACME jest teraz ograniczany dyrektywą acme_max_response_size.
- W module http_image_filter dodano wsparcie dla formatów AVIF i HEIC. Do dyrektywy image_filter dodano parametr convert do konwersji między formatami obrazów.
- Wprowadzono wsparcie dla rozszerzenia TLS ECH (Encrypted ClientHello), kontynuującego rozwój rozszerzenia ESNI (Encrypted Server Name Indication) i wykorzystywanego do szyfrowania informacji o parametrach sesji TLS, takich jak żądana nazwa domeny. Plik z kluczem prywatnym dla ECH określa się za pomocą dyrektywy ssl_encrypted_hello_key, a informacje o korzystaniu z ECH są dostępne przez zmienną $ssl_encrypted_hello.
- Moduł stream zyskał wsparcie dla protokołu PROXYv2 podczas przekazywania ruchu w kierunku proxowanych. serwerów.
- Dodano możliwość liczenia elementów na listach i obiektach podczas eksportu metryk Prometheus (ścieżki kończące się ukośnikiem teraz zwracają liczbę elementów w odpowiedniej kolekcji API).
- Dodano zmienną $sent_body, zawierającą treść odpowiedzi subzapytania lub żądania od modułu klienckiego.
- Dodano zmienną $upstream_cache_key, zawierającą używany klucz do cache'u.
- W proxy pocztowymserwerze wprowadzono wsparcie dla metod autoryzacji XOAUTH2 i OAUTHBEARER.
- Wprowadzono wsparcie dla budowy z biblioteką kryptograficzną AWS-LC, rozwijaną przez firmę Amazon.
- Rozwiązano problemy z budowaniem w NetBSD 10.0.
- Ulepszono proxy i poprawne cache'owanie zapytań GET i HEAD.
- Poprawiono problemy z HTTP/3 związane z degradowaniem pracy protokołu podczas operacji przeładunku oraz z awarią po aktualizacji binarnej; poprawiono routowanie pakietów QUIC między procesami dzięki ulepszonemu kodowi BPF.
- Z repozytorium projektu nginx przeniesiono zmiany zaproponowane w wersji nginx 1.29.3, z wyjątkiem dyrektyw add_header_inherit i add_trailer_inherit. Przeniesiono także niektóre usprawnienia z FreeNginx.
Źródło: opennet.ru
