Release von nginx 1.20.0

Nach einem Jahr der Entwicklung wurde der neue stabile Zweig des leistungsstarken HTTP-Servers und des Multi-Protocol-Proxys nginx 1.20.0 prĂ€sentiert, der die in der Hauptversion 1.19.x gesammelten Änderungen enthĂ€lt. ZukĂŒnftige Änderungen im stabilen Zweig 1.20 werden sich auf die Beseitigung schwerwiegender Fehler und SicherheitsanfĂ€lligkeiten konzentrieren. Bald wird der Hauptzweig nginx 1.21 gebildet, in dem die Entwicklung neuer Funktionen fortgesetzt wird. FĂŒr gewöhnliche Benutzer, die keine Anforderungen an die KompatibilitĂ€t mit Drittanbieter-Modulen haben, wird die Verwendung des Hauptzweigs empfohlen, aus dem alle drei Monate kommerzielle Produktversionen von Nginx Plus erstellt werden.

Laut dem Bericht von Netcraft im MĂ€rz wird nginx auf 20,15 % aller aktiven Websites verwendet (vor einem Jahr 19,56 %, vor zwei Jahren 20,73 %), was dem zweiten Platz in dieser Kategorie entspricht (der Marktanteil von Apache betrĂ€gt 25,38 % (vor einem Jahr 27,64 %), Google — 10,09 %, Cloudflare — 8,51 %. Betrachten wir alle Websites, bleibt nginx mit 35,34 % MarktfĂŒhrer (vor einem Jahr 36,91 %, vor zwei Jahren — 27,52 %), wĂ€hrend der Marktanteil von Apache 25,98 % betrĂ€gt, OpenResty (eine Plattform basierend auf nginx und LuaJIT) — 6,55 %, Microsoft IIS — 5,96 %.

Unter den millionen meistbesuchten Websites der Welt betrĂ€gt der Anteil von nginx 25,55 % (vor einem Jahr 25,54 %, vor zwei Jahren 26,22 %). Derzeit betreibt nginx etwa 419 Millionen Websites (vor einem Jahr 459 Millionen). Laut W3Techs wird nginx auf 33,7 % der Websites aus der Million der meistbesuchten genutzt, im April des letzten Jahres lag dieser Wert bei 31,9 %, im Jahr davor bei 41,8 %, was auf die separate ZĂ€hlung des Cloudflare HTTP-Servers zurĂŒckzufĂŒhren ist. Der Anteil von Apache sank im Laufe des Jahres von 39,5 % auf 34 %, wĂ€hrend der Anteil von Microsoft IIS von 8,3 % auf 7 % fiel. Der Marktanteil von LiteSpeed stieg von 6,3 % auf 8,4 %, wĂ€hrend Node.js von 0,8 % auf 1,2 % zunahm. In Russland wird nginx auf 79,1 % der meistbesuchten Websites verwendet (vor einem Jahr — 78,9 %).

Die auffĂ€lligsten Verbesserungen, die im Laufe der Bildung des Hauptzweigs 1.19.x hinzugefĂŒgt wurden:

  • Die Möglichkeit zur ÜberprĂŒfung von Kunden-Zertifikaten unter Einbeziehung externer Dienste auf der Grundlage des OCSP-Protokolls (Online Certificate Status Protocol) wurde hinzugefĂŒgt. Um die ÜberprĂŒfung zu aktivieren, wird die Direktive ssl_ocsp vorgeschlagen, zur Konfiguration der Cache-GrĂ¶ĂŸe — ssl_ocsp_cache, zur Überschreibung der im Zertifikat angegebenen OCSP-Handler-URL — ssl_ocsp_responder.
  • Das Modul ngx_stream_set_module wurde hinzugefĂŒgt, das es ermöglicht, den Wert einer Variablen zuzuweisen. server { listen 12345; set $true 1; }
  • Die Direktive proxy_cookie_flags wurde hinzugefĂŒgt, um Flags fĂŒr Cookies in proxierten Verbindungen anzugeben. Zum Beispiel, um das Flag „httponly“ zu Cookie „one“ hinzuzufĂŒgen, und fĂŒr alle anderen Cookies die Flags „nosecure“ und „samesite=strict“ zu verwenden: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Eine Ă€hnliche Direktive userid_flags zur HinzufĂŒgung von Flags zu Cookies wurde ebenfalls fĂŒr das Modul ngx_http_userid implementiert.

  • Die Direktiven „ssl_conf_command“, „proxy_ssl_conf_command“, „grpc_ssl_conf_command“ und „uwsgi_ssl_conf_command“ wurden hinzugefĂŒgt, mit denen beliebige Parameter fĂŒr die Konfiguration von OpenSSL festgelegt werden können. Zum Beispiel, um die Chiffren ChaCha zu priorisieren und die Chiffren TLSv1.3 zu konfigurieren, kann angegeben werden: ssl_conf_command Options PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Die Direktive „ssl_reject_handshake“ wurde hinzugefĂŒgt, die alle Verhandlungsversuche ablehnt. SSL-Verbindungen (zum Beispiel kann sie verwendet werden, um alle Anfragen mit unbekannten Hostnamen im SNI-Feld abzulehnen). server { listen 443 ssl; ssl_reject_handshake on; } server { listen 443 ssl; server_name example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Im Mail-Proxy wurde die Direktive proxy_smtp_auth hinzugefĂŒgt, die es ermöglicht, Benutzer im Backend mit dem Befehl AUTH und dem PLAIN SASL-Mechanismus zu authentifizieren.
  • Die Direktive „keepalive_time“ wurde hinzugefĂŒgt, die die gesamte Lebensdauer jeder Keep-Alive-Verbindung begrenzt, nach deren Ablauf die Verbindung geschlossen wird (nicht zu verwechseln mit keepalive_timeout, das die Zeit der InaktivitĂ€t definiert, nach der die Keep-Alive-Verbindung geschlossen wird).
  • Die Variable $connection_time wurde hinzugefĂŒgt, ĂŒber die Informationen zur Dauer der Verbindung in Sekunden mit MillisekundenprĂ€zision abgerufen werden können.
  • Die Direktiven „proxy_cache_path“, „fastcgi_cache_path“, „scgi_cache_path“ und „uwsgi_cache_path“ wurden um den Parameter „min_free“ ergĂ€nzt, der die Cache-GrĂ¶ĂŸe auf Basis der FestplattenplatzverfĂŒgbarkeit reguliert.
  • Die Direktiven „lingering_close“, „lingering_time“ und „lingering_timeout“ wurden fĂŒr die Verwendung mit HTTP/2 angepasst.
  • Der Code zur Verarbeitung von Verbindungen in HTTP/2 Ă€hnelt der Implementierung von HTTP/1.x. Die UnterstĂŒtzung fĂŒr die einzelnen Einstellungen „http2_recv_timeout“, „http2_idle_timeout“ und „http2_max_requests“ wurde zugunsten der allgemeinen Direktiven „keepalive_timeout“ und „keepalive_requests“ eingestellt. Die Einstellungen „http2_max_field_size“ und „http2_max_header_size“ wurden entfernt, stattdessen sollten „large_client_header_buffers“ verwendet werden.
  • Eine neue Kommandozeilenoption „-e“ wurde hinzugefĂŒgt, mit der eine alternative Datei fĂŒr die Fehlerprotokollierung angegeben werden kann, die anstelle des in den Einstellungen festgelegten Logs verwendet wird. Anstelle des Dateinamens kann ein spezieller Wert wie stderr angegeben werden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4