Nach einem Jahr Entwicklung Ein neuer stabiler Branch des hochperformanten HTTP-Servers und des Multi-Protocol-Proxys , die alle Änderungen der Hauptreihe 1.17.x umfasst. In Zukunft werden alle Änderungen in der stabilen Reihe 1.18 darauf abzielen, schwerwiegende Fehler und Sicherheitsanfälligkeiten zu beheben. Bald wird die Hauptreihe nginx 1.19 gebildet, in der die Entwicklung neuer Funktionen fortgesetzt wird. Für normale Benutzer, die keine Anforderungen an die Kompatibilität mit Drittanbieter-Modulen haben, sollten den Haupt-Branch verwenden, auf dessen Basis alle drei Monate Releases des kommerziellen Produkts Nginx Plus erstellt werden.
Gemäß dem zeigt, dass nginx auf 19,56 % aller aktiven Websites verwendet wird (vor einem Jahr 20,73 %, vor zwei Jahren 21,02 %), was dem zweiten Platz in dieser Kategorie entspricht (der Anteil von Apache beträgt 27,64 %, Google 10,03 %, Microsoft IIS 4,77 %). Bei Betrachtung aller Websites behauptet nginx jedoch die Führung und hat einen Marktanteil von 36,91 % (vor einem Jahr 27,52 %), während der Anteil von Apache 24,73 %, Microsoft IIS 12,85 % und Google 3,42 % beträgt.
Unter den eine Million besuchtesten Websites weltweit liegt der Anteil von nginx bei 25,54 % (vor einem Jahr 26,22 %, vor zwei Jahren 23,76 %). Derzeit werden etwa 459 Millionen Websites (vor einem Jahr 397 Millionen) von nginx betrieben. Nach W3Techs berichtet, dass nginx auf 31,9 % der millionen meistbesuchten Websites eingesetzt wird. Im April des letzten Jahres lag dieser Anteil bei 41,8 %, vor zwei Jahren bei 38 % (der Rückgang ist auf die separate Zählung des HTTP-Servers von Cloudflare zurückzuführen). Der Anteil von Apache ist im Laufe des Jahres von 43,6 % auf 38,9 % gesunken, während der Anteil von Microsoft IIS von 8,6 % auf 8,3 % gefallen ist. In Russland wird nginx auf 78,9 % der meistbesuchten Websites verwendet (vor einem Jahr waren es 81 %). Verwendet wird nginx auf 78,9 % der meistbesuchten Websites (vor einem Jahr waren es 81 %).
Die bemerkenswertesten Verbesserungen, die im Rahmen der Hauptversion 1.17.x hinzugefügt wurden:
- Eine neue Direktive wurde hinzugefügt , der den Testmodus aktiviert, in dem keine Beschränkungen für die Verarbeitungsgeschwindigkeit von Anforderungen gelten (kein Rate Limiting), aber die Anzahl der Anfragen, die die Limits überschreiten, weiterhin im Shared Memory erfasst wird;
- Eine neue Direktive wurde hinzugefügt , welches das Modul ngx_http_limit_conn_module in den Testmodus versetzt, bei dem die Anzahl der Verbindungen nicht begrenzt, sondern lediglich erfasst wird;
- Die Direktive „«, das die Hinzufügung einer Verzögerung für nicht autorisierte Anfragen mit dem Statuscode 401 ermöglicht, um die Intensität von Passwortversuchen zu reduzieren und Schutz zu bieten gegen , die zeitbasierte Angriffe (Timing-Angriffe) auf Systeme, deren Zugriff durch ein Passwort eingeschränkt ist, manipulieren; , oder (JSON Web Token);
- Unterstützung für Variablen in den Direktiven „limit_rate“ und „limit_rate_after“ sowie in den Direktiven „proxy_upload_rate“ und „proxy_download_rate“ des Stream-Moduls hinzugefügt;
- In der Direktive Die Unterstützung für die Verwendung von Variablen im Parameter zur Bestimmung der Adresse wurde hinzugefügt. Wenn die Adresse als Domainname angegeben ist, wird der Name in den beschriebenen Servergruppen gesucht, und wenn er nicht gefunden wird, erfolgt die Bestimmung über den Resolver;
- Neue Variablen hinzugefügt und , die die Adresse und den Port des Servers enthalten, die aus dem PROXY-Protokoll-Header erhalten wurden;
- Im Modul eine Variable hinzugefügt , die das Ergebnis der Verbindungsbegrenzung speichert: PASSED, REJECTED oder REJECTED_DRY_RUN;
- Im Modul eine Variable hinzugefügt , die das Ergebnis der Datenstromgeschwindigkeitsbegrenzung speichert: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN oder REJECTED_DRY_RUN;
- Standardmäßig wird der Bau des Moduls sichergestellt ;
- Die Unterstützung für den Wechsel von benannten Blöcken "location" wurde durch die Methode $r->internal_redirect() ergänzt, die vom integrierten Perl-Interpreter bereitgestellt wird. Diese Methode unterstützt jetzt die Verarbeitung von URIs mit maskierten Zeichen.
- Bei der Verwendung der Direktive „“ im „upstream“-Block zur Lastverteilung mit Clientbindung wird bei Angabe eines leeren Schlüssels jetzt der Modus der gleichmäßigen Lastverteilung (Round-Robin) aktiviert;
- Die Unterstützung für den Aufruf von ioctl(FIONREAD) wurde hinzugefügt, wenn dies verfügbar ist, um das Lesen von schnellen Verbindungen über längere Zeit zu vermeiden.
Quelle: opennet.ru
