Nach einem Jahr der Entwicklung wurde ein neuer stabiler Zweig des Hochleistungs-HTTP-Servers und Multiprotokoll-Proxyservers nginx 1.20.0 eingefĂŒhrt, der die im Hauptzweig 1.19.x gesammelten Ănderungen enthĂ€lt. ZukĂŒnftig werden sich alle Ănderungen im Stable Branch 1.20 auf die Beseitigung schwerwiegender Fehler und Schwachstellen beziehen. Bald wird der Hauptzweig von Nginx 1.21 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 einem Bericht von Netcraft vom 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 der Beliebtheit in dieser Kategorie entspricht (der Anteil von Apache entspricht 25.38 %). (vor einem Jahr 27.64 %), Google â 10.09 %, Cloudflare â 8.51 %. Gleichzeitig behĂ€lt Nginx seine MarktfĂŒhrerschaft und nimmt 35.34 % des Marktes ein (vor einem Jahr 36.91 %, vor zwei Jahren â). 27.52 %), wĂ€hrend der Anteil von Apache 25.98 % entspricht, OpenResty (Plattform basierend auf Nginx und LuaJIT) â 6.55 %, Microsoft IIS â 5.96 %.
Unter den Millionen meistbesuchten Websites weltweit betrĂ€gt der Anteil von Nginx 25.55 % (vor einem Jahr 25.54 %, vor zwei Jahren 26.22 %). Derzeit laufen etwa 419 Millionen Websites mit Nginx (vor 459 Millionen vor einem Jahr). Laut W3Techs wird Nginx auf 33.7 % der Websites der am meisten besuchten Millionen verwendet, im April letzten Jahres lag dieser Wert bei 31.9 %, im Jahr zuvor bei 41.8 % (der RĂŒckgang erklĂ€rt sich durch den Ăbergang zur separaten Buchhaltung von Cloudflare http). Server). Der Anteil von Apache sank im Laufe des Jahres von 39.5 % auf 34 % und der Anteil von Microsoft IIS von 8.3 % auf 7 %. Der Anteil von LiteSpeed ââstieg von 6.3 % auf 8.4 % und der von Node.js von 0.8 % auf 1.2 %. In Russland wird Nginx auf 79.1 % der meistbesuchten Websites verwendet (vor einem Jahr - 78.9 %).
Die bemerkenswertesten Verbesserungen, die wĂ€hrend der Entwicklung des 1.19.x-Upstream-Zweigs hinzugefĂŒgt wurden:
- Es wurde die Möglichkeit hinzugefĂŒgt, Client-Zertifikate mithilfe externer Dienste basierend auf dem OCSP-Protokoll (Online Certificate Status Protocol) zu ĂŒberprĂŒfen. Um die PrĂŒfung zu aktivieren, wird die ssl_ocsp-Direktive vorgeschlagen, um die Cache-GröĂe zu konfigurieren â ssl_ocsp_cache, um die URL des im Zertifikat angegebenen OCSP-Handlers neu zu definieren â ssl_ocsp_responder.
- Das Modul ngx_stream_set_module ist enthalten, mit dem Sie der Variablen server { listen 12345; einen Wert zuweisen können. setze $true 1; }
- Proxy_cookie_flags-Direktive hinzugefĂŒgt, um Flags fĂŒr Cookies in Proxy-Verbindungen anzugeben. Um beispielsweise das Flag âhttponlyâ zu Cookie âoneâ und die Flags ânosecureâ und âsamesite=strictâ fĂŒr alle anderen Cookies hinzuzufĂŒgen, können Sie die folgende Konstruktion verwenden: Proxy_cookie_flags one httponly; Proxy_cookie_flags ~ Nosecure samesite=strict;
Eine Ă€hnliche userid_flags-Direktive zum HinzufĂŒgen von Flags zu Cookies ist auch fĂŒr das Modul ngx_http_userid implementiert.
- Direktiven âssl_conf_commandâ, âproxy_ssl_conf_commandâ, âgrpc_ssl_conf_commandâ und âuwsgi_ssl_conf_commandâ hinzugefĂŒgt, mit denen Sie beliebige Parameter fĂŒr die Konfiguration von OpenSSL festlegen können. Um beispielsweise ChaCha-VerschlĂŒsselungen und die erweiterte Konfiguration von TLSv1.3-VerschlĂŒsselungen zu priorisieren, können Sie ssl_conf_command Optionen PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
- Die Direktive "ssl_reject_handshake" wurde hinzugefĂŒgt, die anweist, alle Handshake-Versuche abzulehnen. SSL-Verbindungen (können beispielsweise 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; }
- Dem Mail-Proxy wurde die Direktive âproxy_smtp_authâ hinzugefĂŒgt, mit der Sie den Benutzer im Backend mithilfe des AUTH-Befehls und des PLAIN SASL-Mechanismus authentifizieren können.
- Die Direktive âkeepalive_timeâ wurde hinzugefĂŒgt, die die Gesamtlebensdauer jeder Keep-Alive-Verbindung begrenzt, nach der die Verbindung geschlossen wird (nicht zu verwechseln mit keepalive_timeout, die die InaktivitĂ€tszeit definiert, nach der die Keep-Alive-Verbindung geschlossen wird).
- Variable $connection_time hinzugefĂŒgt, ĂŒber die Sie Informationen ĂŒber die Verbindungsdauer in Sekunden mit Millisekundengenauigkeit erhalten können.
- Den Anweisungen âproxy_cache_pathâ, âfastcgi_cache_pathâ, âscgi_cache_pathâ und âuwsgi_cache_pathâ wurde ein âmin_freeâ-Parameter hinzugefĂŒgt, der die Cache-GröĂe basierend auf der Bestimmung der MindestgröĂe des freien Speicherplatzes reguliert.
- Die Direktiven âlingering_closeâ, âlingering_timeâ und âlingering_timeoutâ wurden fĂŒr die Arbeit mit HTTP/2 angepasst.
- Der Verbindungsverarbeitungscode in HTTP/2 Ă€hnelt der HTTP/1.x-Implementierung. Die UnterstĂŒtzung der einzelnen Einstellungen âhttp2_recv_timeoutâ, âhttp2_idle_timeoutâ und âhttp2_max_requestsâ wurde zugunsten der allgemeinen Anweisungen âkeepalive_timeoutâ und âkeepalive_requestsâ eingestellt. Die Einstellungen âhttp2_max_field_sizeâ und âhttp2_max_header_sizeâ wurden entfernt und stattdessen sollte âlarge_client_header_buffersâ verwendet werden.
- Es wurde eine neue Befehlszeilenoption â-eâ hinzugefĂŒgt, mit der Sie eine alternative Datei zum Schreiben des Fehlerprotokolls angeben können, die anstelle des in den Einstellungen angegebenen Protokolls verwendet wird. Anstelle des Dateinamens können Sie den Sonderwert stderr angeben.
Source: opennet.ru
