Nginx 1.18.0-Version

Nach einem Jahr Entwicklung vertreten neuer stabiler Zweig des Hochleistungs-HTTP-Servers und Multiprotokoll-Proxyservers nginx 1.18.0, das die im Hauptzweig 1.17.x angesammelten Änderungen absorbierte. Zukünftig werden sich alle Änderungen im Stable Branch 1.18 auf die Beseitigung schwerwiegender Fehler und Schwachstellen beziehen. Bald wird der Hauptzweig von Nginx 1.19 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, empfohlen Nutzen Sie den Hauptzweig, auf dessen Grundlage alle drei Monate Releases des kommerziellen Produkts Nginx Plus erstellt werden.

Gemäß April-Bericht Netcraft Nginx wird auf 19.56 % aller aktiven Websites verwendet (vor einem Jahr 20.73 %, vor zwei Jahren 21.02 %), was dem zweiten Platz in der Beliebtheit in dieser Kategorie entspricht (Apaches Anteil entspricht 27.64 %, Google – 10.03 %, Microsoft). IIS - 4.77 % . Gleichzeitig behält Nginx bei Betrachtung aller Websites seine Führungsposition und besetzt 36.91 % des Marktes (vor einem Jahr 27.52 %), während der Anteil von Apache 24.73 %, Microsoft IIS – 12.85 %, Google – 3.42 % entspricht.

Unter den Millionen meistbesuchten Websites weltweit beträgt der Anteil von Nginx 25.54 % (vor einem Jahr 26.22 %, vor zwei Jahren 23.76 %). Derzeit laufen etwa 459 Millionen Websites mit Nginx (397 Millionen vor einem Jahr). Von Nach W3Techs Nginx wird auf 31.9 % der Websites der am häufigsten besuchten Millionen verwendet. Im April letzten Jahres waren es 41.8 %, im Jahr zuvor 38 % (der Rückgang erklärt sich aus der Umstellung auf eine separate Abrechnung des Cloudflare-HTTP-Servers). Der Anteil von Apache sank im Laufe des Jahres von 43.6 % auf 38.9 % und der Anteil von Microsoft IIS von 8.6 % auf 8.3 %. In Russland Nginx benutzt auf 78.9 % der meistbesuchten Websites (vor einem Jahr - 81 %).

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

  • Richtlinie hinzugefügt limit_req_dry_run, der den Testlaufmodus aktiviert, in dem keine Einschränkungen hinsichtlich der Intensität der Anforderungsverarbeitung angewendet werden (ohne Ratenbegrenzung), aber weiterhin die Anzahl der Anforderungen berücksichtigt, die die Grenzwerte im gemeinsam genutzten Speicher überschreiten;
  • Richtlinie hinzugefügt limit_conn_dry_run, wodurch das Modul ngx_http_limit_conn_module in den Testlaufmodus versetzt wird, in dem die Anzahl der Verbindungen nicht begrenzt, sondern berücksichtigt wird;
  • Direktive hinzugefügt „auth_delay", wodurch Sie eine Verzögerung bei nicht autorisierten Anfragen mit dem Antwortcode 401 hinzufügen können, um die Intensität des Erratens von Passwörtern zu verringern und sich davor zu schützen Anschläge, Manipulation der Messung der Ausführungszeit von Vorgängen (Timing-Angriff) beim Zugriff auf Systeme, auf die der Zugriff beschränkt ist Passwort, Ergebnis einer Unterabfrage oder JWT (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 Richtlinie grpc_pass Unterstützung für die Verwendung einer Variablen in einem Parameter hinzugefügt, der eine Adresse definiert. Wenn die Adresse als Domänenname angegeben ist, wird der Name in den beschriebenen Servergruppen gesucht und, falls er nicht gefunden wird, mithilfe eines Resolvers ermittelt.
  • Neue Variablen hinzugefügt $proxy_protocol_server_addr и $proxy_protocol_server_port, die die Serveradresse und den Port enthalten, die aus dem PROXY-Protokoll-Header erhalten wurden;
  • Im Modul ngx_stream_limit_conn_module Variable hinzugefügt $limit_conn_status, das das Ergebnis der Begrenzung der Anzahl der Verbindungen speichert: PASSED, REJECTED oder REJECTED_DRY_RUN;
  • Im Modul ngx_http_limit_req_module Variable hinzugefügt $limit_req_status, das das Ergebnis der Begrenzung der Eingangsrate von Anfragen speichert: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN oder REJECTED_DRY_RUN;
  • Standardmäßig ist das Modul montiert ngx_http_postpone_filter_module;
  • Unterstützung für das Umschalten benannter „location“-Blöcke mithilfe der vom integrierten Perl-Interpreter bereitgestellten Methode $r->internal_redirect() hinzugefügt. Diese Methode beinhaltet nun die Verarbeitung von URIs mit Escapezeichen;
  • Bei Verwendung der „Upstream“-Direktive im „Upstream“-EinstellungsblockHash-» Um den Lastausgleich mit Client-Server-Bindung zu organisieren, wird jetzt der einheitliche Ausgleichsmodus (Round-Robin) aktiviert, wenn Sie einen leeren Schlüsselwert angeben.
  • Unterstützung für den Aufruf von ioctl(FIONREAD) hinzugefügt, sofern verfügbar, um das Lesen von einer schnellen Verbindung im Laufe der Zeit zu vermeiden.

Source: opennet.ru

Kommentar hinzufügen