Die Version des leistungsstarken HTTP-Servers und Multi-Protocol-Proxyservers Angie 1.8.0, abgeleitet von Nginx, wurde von einer Gruppe ehemaliger Entwickler des Projekts vorgestellt, die das Unternehmen F5 Network verlassen haben. Der Quellcode von Angie ist unter der BSD-Lizenz verfügbar. Das Projekt hat Kompatibilitätszertifikate mit den russischen Betriebssystemen Red OS, Astra Linux Special Edition, Rosa Chrom Server, Alt und den FSTEC-Versionen von Alt erhalten.
Die Weiterentwicklung wird von der Firma "Web-Server" betreut, die im Herbst 2022 gegründet wurde und Investments in Höhe von 1 Million Dollar erhalten hat. Zu den Mitbesitzern der Firma Web-Server gehören: Valentin Bartenew (Teamleiter, der das Produkt Nginx Unit entwickelt hat), Ivan Polujanov (ehemaliger Leiter der Frontend-Entwickler bei Rambler und Mail.Ru), Oleg Mamontow (Leiter des technischen Supports bei NGINX Inc.) und Ruslan Ermilow (ru@FreeBSD.org).
Änderungen in Angie 1.8.0:
- Die Funktionen des http_acme-Moduls, das zur Automatisierung der Beschaffung und Aktualisierung von Zertifikaten von der Zertifizierungsstelle Let’s Encrypt dient, wurden erweitert. Dieses verwendet das ACME-Protokoll (Automatic Certificate Management Environment):
- Unterstützung der DNS-01-Überprüfungsmethode hinzugefügt, die erforderlich ist, um Zertifikate für Muster zu erhalten, die eine Gruppe von Subdomains abdecken (z. B. *.example.com).
- Die Direktive „acme_hook“ wurde hinzugefügt, um externe Apps für die Validierung des Domainbesitzes zu konfigurieren. Solche Handler können zur Integration mit externen Diensten und DNS-Anbietern verwendet werden.
- Zur Vereinfachung der Diagnose wurden zusätzliche Informationen in die Protokolle aufgenommen, wie z. B. der Grund für die Zertifikatsaktualisierung, die vollständige Liste Domänen, die Kundennummer, Informationen zur Inaktivität und die zu überprüfende Domain.
- In die Direktive „acme_client“ wurde der Parameter „account_key“ hinzugefügt, um einen bestehenden Zugangsschlüssel für Server ACME wiederverwenden zu können, anstatt automatisch einen neuen Schlüssel zu generieren.
- Es wurde die Möglichkeit implementiert, Variablen in der Direktive „status_zone“ zu verwenden, die in den Modulen stream und http zum Einsatz kommt. Variablen können zur dynamischen Erfassung von Statistiken in Verbindung mit einzelnen virtuellen Hosts verwendet werden, die in einem Block „location“ oder „server“ definiert sind. server { listen 80; server_name *.example.com; status_zone $host zone=host_zone:10; location / { proxy_pass http://example.com; } }
- Im gzip-Komprimierungsmodul wurde die Kompatibilität mit der Bibliothek zlib-ng 2.2 und neueren Versionen gewährleistet.
- Die Implementierung der Direktive max_headers, die die maximale Anzahl an HTTP-Headern in einer Anfrage begrenzt, wurde aus dem Projekt freenginx übernommen, was hilfreich zur Abwehr von DoS-Angriffen sein kann.
- Die Direktiven http3_max_table_capacity und proxy_http3_max_table_capacity wurden hinzugefügt, um die Größe der Tabelle, die für die Komprimierung von Headern in HTTP/3 verwendet wird, zu begrenzen.
- Die Unterstützung für Cross-Compilation wurde hinzugefügt – die Erstellung kann nun ohne die Notwendigkeit erfolgen, das Skript autotest auf der Zielplattform auszuführen.
- Die Änderung wurde aus freenginx übernommen, die das Problem mit fehlerhaften Antwortlieferungen während des sanften Herunterfahrens von Handler-Prozessen löst – Keep-Alive-Verbindungen werden nun erst nach Ablauf des in der Direktive lingering_timeout festgelegten Timeouts geschlossen.
- Um aktuelle Werte bei der Verwendung von virtuellen Hosts zu erhalten, wurde die Cache-Funktion für die Variablen $ssl_server_name, $ssl_server_cert_type, $ssl_preread_protocol und $ssl_preread_server_name im Stream-Modul deaktiviert.
- Änderungen aus dem Nginx-Projekt-Repository, die in der Version nginx 1.27.3 vorgeschlagen wurden, wurden übernommen.
Quelle: opennet.ru
