nginx 1.20.0 vrijgeven

Na een jaar van ontwikkeling is een nieuwe stabiele tak van de krachtige HTTP-server en multi-protocol proxyserver nginx 1.20.0 geïntroduceerd, waarin de veranderingen zijn verwerkt die zijn verzameld in de hoofdtak 1.19.x. In de toekomst zullen alle veranderingen in de stabiele tak 1.20 verband houden met het elimineren van ernstige fouten en kwetsbaarheden. Binnenkort zal de hoofdtak van nginx 1.21 worden gevormd, waarin de ontwikkeling van nieuwe functies zal worden voortgezet. Voor gewone gebruikers die niet de taak hebben om compatibiliteit met modules van derden te garanderen, wordt het aanbevolen om de hoofdtak te gebruiken, op basis waarvan elke drie maanden releases van het commerciële product Nginx Plus worden gevormd.

Volgens een rapport van Netcraft uit maart wordt nginx gebruikt op 20.15% van alle actieve sites (een jaar geleden 19.56%, twee jaar geleden 20.73%), wat overeenkomt met de tweede plaats in populariteit in deze categorie (het aandeel van Apache komt overeen met 25.38%). (een jaar geleden 27.64%), Google - 10.09%, Cloudflare - 8.51%. Tegelijkertijd behoudt nginx, als we alle sites in ogenschouw nemen, zijn leiderschap en bezet het 35.34% van de markt (een jaar geleden 36.91%, twee jaar geleden - 27.52%), terwijl het aandeel van Apache overeenkomt met 25.98%, OpenResty (platform gebaseerd op nginx en LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Onder de miljoen meest bezochte sites ter wereld bedraagt ​​het aandeel van nginx 25.55% (een jaar geleden 25.54%, twee jaar geleden 26.22%). Momenteel draaien ongeveer 419 miljoen websites Nginx (459 miljoen een jaar geleden). Volgens W3Techs wordt nginx gebruikt op 33.7% van de sites van de miljoen meest bezochte, in april vorig jaar was dit cijfer 31.9%, het jaar daarvoor - 41.8% (de daling wordt verklaard door de overgang naar een aparte boekhouding van de Cloudflare http server). Het aandeel van Apache daalde in de loop van het jaar van 39.5% naar 34%, en dat van Microsoft IIS van 8.3% naar 7%. Het aandeel van LiteSpeed ​​groeide van 6.3% naar 8.4%, en dat van Node.js van 0.8% naar 1.2%. In Rusland wordt nginx gebruikt op 79.1% van de meest bezochte sites (een jaar geleden - 78.9%).

De meest opvallende verbeteringen die zijn toegevoegd tijdens de ontwikkeling van de 1.19.x upstream-vertakking:

  • De mogelijkheid toegevoegd om clientcertificaten te verifiëren met behulp van externe services op basis van het OCSP-protocol (Online Certificate Status Protocol). Om de controle mogelijk te maken, wordt de ssl_ocsp-richtlijn voorgesteld, om de cachegrootte te configureren - ssl_ocsp_cache, om de URL van de OCSP-handler gespecificeerd in het certificaat opnieuw te definiëren - ssl_ocsp_responder.
  • De module ngx_stream_set_module is inbegrepen, waarmee u een waarde kunt toewijzen aan de variabele server { luister 12345; stel $true 1 in; }
  • Richtlijn proxy_cookie_flags toegevoegd om vlaggen voor cookies in proxyverbindingen op te geven. Om bijvoorbeeld de vlag “httponly” toe te voegen aan Cookie “one”, en de vlaggen “nosecure” en “samesite=strict” voor alle andere Cookies, kunt u de volgende constructie gebruiken: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strikt;

    Een soortgelijke userid_flags-richtlijn voor het toevoegen van vlaggen aan cookies is ook geïmplementeerd voor de ngx_http_userid-module.

  • Richtlijnen “ssl_conf_command”, “proxy_ssl_conf_command”, “grpc_ssl_conf_command” en “uwsgi_ssl_conf_command” toegevoegd, waarmee u willekeurige parameters kunt instellen voor het configureren van OpenSSL. Om bijvoorbeeld prioriteit te geven aan ChaCha-cijfers en geavanceerde configuratie van TLSv1.3-cijfers, kunt u ssl_conf_command Options PrioritizeChaCha opgeven; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • "ssl_reject_handshake"-richtlijn toegevoegd, die instrueert om alle pogingen om over SSL-verbindingen te onderhandelen te weigeren (kan bijvoorbeeld worden gebruikt om alle oproepen met onbekende hostnamen in het SNI-veld te weigeren). server {luister 443 ssl; ssl_reject_handshake aan; } server {luister 443 ssl; servernaam voorbeeld.com; ssl_certificaat voorbeeld.com.crt; ssl_certificate_key voorbeeld.com.key; }
  • De proxy_smtp_auth-richtlijn is toegevoegd aan de mailproxy, waardoor u de gebruiker op de backend kunt authenticeren met behulp van de opdracht AUTH en het PLAIN SASL-mechanisme.
  • De richtlijn "keepalive_time" toegevoegd, die de totale levensduur van elke keep-alive-verbinding beperkt, waarna de verbinding wordt gesloten (niet te verwarren met keepalive_timeout, die de inactiviteitstijd definieert waarna de keep-alive-verbinding wordt gesloten).
  • Variabele $connection_time toegevoegd, waarmee u informatie kunt krijgen over de verbindingsduur in seconden met nauwkeurigheid van milliseconden.
  • Er is een parameter “min_free” toegevoegd aan de richtlijnen “proxy_cache_path”, “fastcgi_cache_path”, “scgi_cache_path” en “uwsgi_cache_path”, die de cachegrootte regelt op basis van het bepalen van de minimale grootte van de vrije schijfruimte.
  • De richtlijnen "lingering_close", "lingering_time" en "lingering_timeout" zijn aangepast om met HTTP/2 te werken.
  • De verbindingsverwerkingscode in HTTP/2 ligt dicht bij de HTTP/1.x-implementatie. De ondersteuning voor de individuele instellingen "http2_recv_timeout", "http2_idle_timeout" en "http2_max_requests" is stopgezet ten gunste van de algemene richtlijnen "keepalive_timeout" en "keepalive_requests". De instellingen "http2_max_field_size" en "http2_max_header_size" zijn verwijderd en in plaats daarvan moet "large_client_header_buffers" worden gebruikt.
  • Een nieuwe opdrachtregeloptie “-e” toegevoegd, waarmee u een alternatief bestand kunt opgeven voor het schrijven van het foutenlogboek, dat zal worden gebruikt in plaats van het logboek dat is opgegeven in de instellingen. In plaats van de bestandsnaam kunt u de speciale waarde stderr opgeven.

Bron: opennet.ru

Voeg een reactie