Veröffentlichung von nginx 1.28.0 und Fork FreeNginx 1.28.0

Nach einem Jahr Entwicklungszeit wurde ein neuer stabiler Zweig des Hochleistungs-HTTP-Servers und Multiprotokoll-Proxyservers nginx 1.28.0 veröffentlicht, der die im Hauptzweig 1.27.x gesammelten Änderungen enthält. Zukünftig werden alle Änderungen im stabilen Zweig 1.28 mit der Beseitigung schwerwiegender Fehler und Schwachstellen zusammenhängen. Bald wird der Hauptzweig von Nginx 1.29 gebildet, in dem die Entwicklung neuer Funktionen fortgesetzt wird. Für normale Benutzer, die nicht die Aufgabe haben, die Kompatibilität mit Modulen von Drittanbietern sicherzustellen, empfiehlt sich die Verwendung des Hauptzweigs, auf dessen Grundlage alle drei Monate Releases des kommerziellen Produkts Nginx Plus erstellt werden.

Laut dem März-Bericht von Netcraft laufen etwa 245 Millionen Websites unter Nginx (243 Millionen vor einem Jahr, 289 Millionen vor zwei Jahren). Nginx wird auf 17.89 % aller aktiven Websites verwendet (18.15 % vor einem Jahr, 18.94 % vor zwei Jahren), was dem ersten Platz in der Popularität in dieser Kategorie entspricht (der Anteil von Apache beträgt 16.03 % (20.09 % vor einem Jahr, 20.52 % vor zwei Jahren), Cloudflare – 17.81 % (14.12 %, 11.32 %), Google – 9.89 % (10.41 %, 9.89 %).

Betrachtet man alle Sites, behält nginx seine Führungsposition und nimmt 20.48 % des Marktes ein (vor einem Jahr 22.31 %, vor zwei Jahren 25.94 %), während der Anteil von Apache 16.03 % (20.17 %, 20.58 %), von Cloudflare 12.87 % (11.24 %, 10.17 %) und von OpenResty (einer auf nginx und LuaJIT basierenden Plattform) 9.36 % (7.93 %, 7.94 %) beträgt.

Unter den Millionen meistbesuchten Websites der Welt belegt nginx mit einem Anteil von 20.37 % (vor einem Jahr 20.63 %, vor zwei Jahren 21.37 %) den zweiten Platz. Den ersten Platz belegt Cloudflare mit 22.32 % (22.59 % vor einem Jahr, 21.62 % vor zwei Jahren). Der Apache-httpd-Anteil beträgt 17.95 % (20.09 %, 21.18 %).

Laut W3Techs wird Nginx auf 33.8 % der Millionen meistbesuchten Websites verwendet (im April letzten Jahres lag dieser Wert bei 34.3 %, im vorletzten Jahr bei 34.5 %). Der Anteil von Apache sank im Jahresverlauf von 30.1 % auf 26.3 %, während der Anteil von Microsoft IIS von 5 % auf 4 % sank. Der Anteil von Node.js stieg von 3.2 % auf 4.4 %, der Anteil von LiteSpeed ​​​​von 12.9 % auf 14.6 %.

Die bemerkenswertesten Verbesserungen, die während der Entwicklung des 1.27.x-Upstream-Zweigs hinzugefügt wurden:

  • Für Verbindungen, die das QUIC-Protokoll verwenden, wurde Unterstützung für den CUBIC-Algorithmus zur Netzwerküberlastungskontrolle (RFC 9438) hinzugefügt. Dabei wird die Größe des Überlastungsfensters schrittweise erhöht, bis ein Paketverlust auftritt. Anschließend wird die Fenstergröße auf den Wert vor dem Verlust zurückgesetzt. In den durchgeführten Tests konnte durch den Einsatz von CUBIC die Übertragungszeit einer 500 MB großen Datei bei Verzögerungen von 24 ms und BDP 40 K (Bandwidth Delay Product) um 750 % und bei Verzögerungen von 73 ms und BDP 100 M um 9 % reduziert werden.
  • Das Stream-Modul hat Unterstützung für die Überprüfung der Sperrung von Client-Zertifikaten mithilfe des OCSP (Online Certificate Status Protocol) hinzugefügt.
  • Das Stream-Modul implementiert die Unterstützung für die OCSP-Stapling-Methode zur Überprüfung des Zertifikatswiderrufs, deren Kern darin besteht, dass beim Aushandeln einer TLS-Verbindung eine von der Zertifizierungsstelle zertifizierte OCSP-Antwort vom Server, der die Site bedient, übertragen wird, ohne dass eine direkte Kontaktaufnahme erforderlich ist Zertifizierungsstelle).
  • Zwischenspeicherung wird beim Systemstart und bei Konfigurationsaktualisierungen implementiert. SSL-Zertifikate, Schlüssel und CRL (Zertifikatssperrliste).
  • Funktionen zur Reduzierung des Ressourcenverbrauchs und der CPU-Auslastung bei der Verwendung von TLS in Konfigurationen mit einer großen Anzahl von Server- und Standortblöcken hinzugefügt. Die hinzugefügten Änderungen ermöglichen es, anstatt für jeden Konfigurationsblock einen separaten SSL-Kontext (SSL_CTX in OpenSSL) zu erstellen, den vorhandenen SSL-Kontext aus dem übergeordneten Block zu verwenden.
  • Die Direktive „ssl_client_certificate“ bietet Unterstützung für Zertifikate mit zusätzlichen Informationen.
  • Zur Überprüfung von Client-SSL-Zertifikaten ist die Direktive „ssl_client_certificate“ nicht mehr erforderlich.
  • Unterstützung für den SmarterMail-spezifischen IMAP-LOGIN-Modus mit ungetaggter CAPABILITY-Antwort auf das Modul ngx_mail_proxy_module hinzugefügt.
  • Die Direktive „proxy_pass_trailers“ wurde zum Modul ngx_http_proxy_module hinzugefügt und ermöglicht die Übertragung von Header-Feldern am Ende der Antwort vom Proxy-Server an den Client.
  • Die im "upstream"-Block verwendete "server"-Direktive wurde aktualisiert, um den "resolve"-Parameter zu unterstützen, der die Änderungsnachverfolgung ermöglicht. IP-Adressen für den verwendeten Domainnamen und die automatische Aktualisierung der "Upstream"-Blockkonfiguration, ohne dass nginx neu gestartet werden muss, wenn sich die Adresse ändert.
  • Möglichkeit hinzugefügt, Variablen in den Anweisungen „proxy_limit_rate“, „fastcgi_limit_rate“, „scgi_limit_rate“ und „uwsgi_limit_rate“ zu verwenden.
  • In den Direktiven „proxy_bind“, „fastcgi_bind“, „grpc_bind“, „memcached_bind“, „scgi_bind“ und „uwsgi_bind“ sowie als Client-Adresse im ngx_http_realip_module sind IPv6-Adressen in eckigen Klammern ohne Portnummer erlaubt.
  • Die Direktive „keepalive_min_timeout“ wurde hinzugefügt, die das Timeout definiert, während dessen Nginx die Keep-Alive-Verbindung mit dem Client nicht schließt.
  • Standardmäßig sind die Protokolle TLSv1 und TLSv1.1 deaktiviert.
  • Probleme mit langem Laden von Konfigurationsdateien aufgrund wiederholter Analyse desselben Satzes von TLS-Zertifikaten, Schlüsseln und Listen von Zertifizierungsstellen wurden behoben. Verbesserte Leistung beim Neuladen der Konfiguration durch Wiederverwendung unveränderter TLS-Objekte wie Zertifikate, Schlüssel und CRLs. Um die Vererbung von Objekten beim Aktualisieren der Konfiguration zu deaktivieren, wurde die Direktive „ssl_object_cache_inheritable“ hinzugefügt.
  • Cache für Zertifikate und Schlüssel hinzugefügt, die mithilfe von Variablen in Anweisungen geladen wurden (z. B. „ssl_certificate /etc/ssl/$ssl_server_name.crt“). Zur Verwaltung des Caches wurden die Anweisungen „ssl_certificate_cache“, „proxy_ssl_certificate_cache“, „grpc_ssl_certificate_cache“ und „uwsgi_ssl_certificate_cache“ hinzugefügt. Mit den angegebenen Anweisungen können Sie die maximale Cachegröße, die Gültigkeitsdauer von Datensätzen und die Zeit zum Bereinigen nicht verwendeter Datensätze konfigurieren. Beispiel: „ssl_certificate_cache max=1000 inactive=20s valid=1m;“.
  • Reduzierter Speicherverbrauch bei der Verarbeitung langlebiger Abfragen in Konfigurationen, die die Anweisungen „gzip“, „gunzip“, „ssi“, „sub_filter“ oder „grpc_pass“ verwenden.
  • Die maximale Größe der im gemeinsam genutzten Speicher zwischengespeicherten SSL-Sitzungen wurde auf 8192 erhöht.
  • Die Assembly mit der Musl C-Bibliothek wurde erstellt.
  • Es wurden Arbeiten durchgeführt, um die Leistung zu optimieren und Fehler in der HTTP/3-Implementierung zu beseitigen.

Darüber hinaus ist die Veröffentlichung der Version des Projekts FreeNginx 1.28.0 erwähnenswert, das den Nginx-Fork entwickelt. Der Fork wird von Maxim Dunin entwickelt, einem der wichtigsten Nginx-Entwickler. FreeNginx positioniert sich als gemeinnütziges Projekt, das die Entwicklung der Nginx-Codebasis ohne Einmischung von Unternehmen ermöglicht. Zu den spezifischen Änderungen im FreeNginx 1.28-Zweig gehören:

  • Der Parameter „off“ in der Direktive „pid“ deaktiviert die Erstellung einer PID-Datei.
  • Begrenzen Sie die Intensität des Schreibens von Meldungen in das Fehlerprotokoll, um zu verhindern, dass das Protokoll mit typischen Meldungen gefüllt wird.
  • Implementierung des Multipath-Parameters in der Listen-Direktive zur Unterstützung von Multipath TCP.
  • Unterstützung für den HTTP-Header „Age“, um die Lebensdauer von Cache-Einträgen zu definieren.
  • Hinzufügen der Authentifizierungsmethoden XOAUTH2 und OAUTHBEARER zum Mail_Proxy-Modul.

Source: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz und VPS-VDS-Servern 🔥 Kaufen Sie zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server | ProHoster