Nach einem Jahr Entwicklung neue stabile Version eines leistungsfĂ€higen HTTP-Servers und einesmehrprotokollfĂ€higen Proxy-Servers , die alle Ănderungen integriert, die im Rahmen der Hauptversion 1.17.x gesammelt wurden. ZukĂŒnftig werden alle Ănderungen in der stabilen Version 1.18 darauf abzielen, schwerwiegende Fehler und SicherheitsanfĂ€lligkeiten zu beheben. In naher Zukunft wird die Hauptversion nginx 1.19 gebildet, in deren Rahmen die Entwicklung neuer Möglichkeiten fortgesetzt wird. FĂŒr normale Nutzer, die keine Anforderungen an die KompatibilitĂ€t mit Drittmodulen haben, sollten die Hauptversion verwenden, auf deren Basis alle drei Monate neue Versionen des kommerziellen Produkts Nginx Plus veröffentlicht werden.
Entsprechend der von Netcraft wird nginx auf 19,56 % aller aktiven Webseiten verwendet (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 %). Betrachtet man jedoch alle Webseiten, bleibt nginx fĂŒhrend und hat einen Marktanteil von 36,91 % (vor einem Jahr 27,52 %), wĂ€hrend der Anteil von Apache 24,73 % betrĂ€gt, Microsoft IIS â 12,85 %, Google â 3,42 %.
Unter den millionen meistbesuchten Webseiten weltweit betrĂ€gt der Anteil von nginx 25,54 % (vor einem Jahr 26,22 %, vor zwei Jahren 23,76 %). Derzeit betreibt nginx etwa 459 Millionen Webseiten (vor einem Jahr 397 Millionen). Laut W3Techs wird nginx auf 31,9 % der Webseiten unter den millionen meistbesuchten verwendet, im April des letzten Jahres betrug dieser Wert 41,8 %, davor 38 % (der RĂŒckgang erklĂ€rt sich durch die Separierung der HTTP-Server von Cloudflare). Der Anteil von Apache ist im vergangenen Jahr von 43,6 % auf 38,9 % gesunken, wĂ€hrend der Anteil von Microsoft IIS von 8,6 % auf 8,3 % gefallen ist. In Russland benutzt nginx 78,9 % der meistbesuchten Webseiten (vor einem Jahr â 81 %).
Die auffÀlligsten Verbesserungen, die im Rahmen der Hauptversion 1.17.x umgesetzt wurden:
- Direktive hinzugefĂŒgt , die den Testlauf aktiviert, in dem keine EinschrĂ€nkungen fĂŒr die Anfrageverarbeitung (ohne Rate Limiting) angewendet werden, aber die Anzahl der Anfragen, die die Limits ĂŒberschreiten, im gemeinsamen Speicher weiter verfolgt wird;
- Direktive hinzugefĂŒgt , die das Modul ngx_http_limit_conn_module in den Testlauf versetzt, bei dem die Anzahl der Verbindungen nicht begrenzt ist, aber gezĂ€hlt wird;
- Die Direktive ââ wurde hinzugefĂŒgt, die eine Verzögerung fĂŒr nicht autorisierte Anfragen mit dem Antwortcode 401 ermöglicht, um die IntensitĂ€t von Passwort-Cracking zu verringern und Schutz vor , die mit der Zeitmessung von Operationen (Timing-Angriff) bei Systemen zu tun haben, auf die der Zugang eingeschrĂ€nkt ist , 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 Moduls Stream hinzugefĂŒgt;
- In der Direktive wurde die UnterstĂŒtzung fĂŒr die Verwendung einer Variablen im Parameter, der die Adresse definiert, hinzugefĂŒgt. Wenn die Adresse als Domainname angegeben ist, wird der Name in den beschriebenen Servergruppen gesucht, und falls nicht gefunden, wird er mit dem Resolver bestimmt;
- 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 VerbindungseinschrĂ€nkung speichert: PASSED, REJECTED oder REJECTED_DRY_RUN;
- Im Modul eine Variable hinzugefĂŒgt , die das Ergebnis der Anfragegeschwindigkeitsbegrenzung speichert: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN oder REJECTED_DRY_RUN;
- StandardmĂ€Ăig wurde der Modulaufbau ;
- Die UnterstĂŒtzung fĂŒr den Wechsel von benannten 'location'-Blöcken mittels der Methode $r->internal_redirect(), bereitgestellt vom eingebauten Perl-Interpreter, wurde hinzugefĂŒgt. Diese Methode beinhaltet jetzt die Verarbeitung von URIs mit escaped Zeichen;
- Bei Verwendung der Direktive «» im Einstellungsblock «upstream» zur Organisation der Lastverteilung mit Client-Bindung an den Server wird bei Angabe eines leeren Wertes fĂŒr den SchlĂŒssel jetzt der Modus der gleichmĂ€Ăigen Lastverteilung (Round-Robin) aktiviert;
- UnterstĂŒtzung fĂŒr den Aufruf von ioctl(FIONREAD) hinzugefĂŒgt, wenn es verfĂŒgbar ist, um das Lesen aus einer schnellen Verbindung ĂŒber lĂ€ngere Zeit zu vermeiden.
Quelle: opennet.ru
