nginx 1.20.0 udgivelse

Efter et års udvikling er en ny stabil gren af ​​den højtydende HTTP-server og multiprotokol-proxyserver nginx 1.20.0 blevet introduceret, som inkorporerer de ændringer, der er akkumuleret i hovedgrenen 1.19.x. I fremtiden vil alle ændringer i den stabile gren 1.20 være relateret til eliminering af alvorlige fejl og sårbarheder. Snart vil hovedgrenen af ​​nginx 1.21 blive dannet, hvor udviklingen af ​​nye funktioner vil fortsætte. For almindelige brugere, der ikke har til opgave at sikre kompatibilitet med tredjepartsmoduler, anbefales det at bruge hovedgrenen, på grundlag af hvilken udgivelser af det kommercielle produkt Nginx Plus dannes hver tredje måned.

Ifølge en marts-rapport fra Netcraft bruges nginx på 20.15% af alle aktive sider (for et år siden 19.56%, for to år siden 20.73%), hvilket svarer til andenpladsen i popularitet i denne kategori (Apaches andel svarer til 25.38% (for et år siden 27.64%), Google - 10.09%, Cloudflare - 8.51%. På samme tid, når man tager alle websteder i betragtning, bevarer nginx sin lederskab og optager 35.34% af markedet (for et år siden 36.91% for to år siden - 27.52%), mens Apaches andel svarer til 25.98%, OpenResty (platform baseret på nginx og LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Blandt de millioner mest besøgte websteder i verden er nginx's andel 25.55 % (for et år siden 25.54 %, for to år siden 26.22 %). I øjeblikket kører omkring 419 millioner websteder Nginx (459 millioner for et år siden). Ifølge W3Techs bruges nginx på 33.7% af websteder ud af de millioner mest besøgte, i april sidste år var dette tal 31.9%, året før - 41.8% (faldet forklares med overgangen til separat bogføring af Cloudflare http server). Apaches andel faldt i løbet af året fra 39.5% til 34%, og Microsoft IIS's andel fra 8.3% til 7%. LiteSpeeds andel voksede fra 6.3 % til 8.4 %, og Node.js fra 0.8 % til 1.2 %. I Rusland bruges nginx på 79.1% af de mest besøgte websteder (for et år siden - 78.9%).

De mest bemærkelsesværdige forbedringer tilføjet under udviklingen af ​​1.19.x upstream-grenen:

  • Tilføjet muligheden for at verificere klientcertifikater ved hjælp af eksterne tjenester baseret på OCSP-protokollen (Online Certificate Status Protocol). For at aktivere kontrollen foreslås ssl_ocsp-direktivet for at konfigurere cachestørrelsen - ssl_ocsp_cache, for at omdefinere URL'en for OCSP-handleren specificeret i certifikatet - ssl_ocsp_responder.
  • Modulet ngx_stream_set_module er inkluderet, som giver dig mulighed for at tildele en værdi til variabelserveren { listen 12345; sæt $true 1; }
  • Tilføjet proxy_cookie_flags-direktiv for at angive flag for cookies i proxyforbindelser. For at tilføje "httponly" flaget til Cookie "one", og "nosecure" og "samesite=strict" flagene for alle andre cookies, kan du bruge følgende konstruktion: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Et lignende userid_flags-direktiv til tilføjelse af flag til cookies er også implementeret for modulet ngx_http_userid.

  • Tilføjede direktiver "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command" og "uwsgi_ssl_conf_command", med hvilke du kan indstille vilkårlige parametre til konfiguration af OpenSSL. For f.eks. at prioritere ChaCha-cifre og avanceret konfiguration af TLSv1.3-cifre, kan du angive ssl_conf_command Indstillinger PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Tilføjet "ssl_reject_handshake" direktiv, som instruerer at afvise alle forsøg på at forhandle SSL-forbindelser (kan f.eks. bruges til at afvise alle opkald med ukendte værtsnavne i SNI-feltet). server { lyt 443 ssl; ssl_reject_handshake on; } server { lytte 443 ssl; servernavn eksempel.com; ssl_certifikat eksempel.com.crt; ssl_certifikatnøgle eksempel.com.nøgle; }
  • Direktivet proxy_smtp_auth er blevet tilføjet til mail-proxyen, hvilket giver dig mulighed for at godkende brugeren på backend ved hjælp af AUTH-kommandoen og PLAIN SASL-mekanismen.
  • Tilføjet "keepalive_time"-direktivet, som begrænser den samlede levetid for hver keep-alive-forbindelse, hvorefter forbindelsen lukkes (ikke at forveksle med keepalive_timeout, som definerer inaktivitetstiden, hvorefter keep-alive-forbindelsen lukkes).
  • Tilføjet $connection_time variabel, hvorigennem du kan få information om forbindelsens varighed på sekunder med millisekunds nøjagtighed.
  • En "min_free"-parameter er blevet tilføjet til direktiverne "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" og "uwsgi_cache_path", som regulerer cachestørrelsen baseret på at bestemme minimumsstørrelsen af ​​ledig diskplads.
  • Direktiverne "lingering_close", "lingering_time" og "lingering_timeout" er blevet tilpasset til at fungere med HTTP/2.
  • Forbindelsesbehandlingskoden i HTTP/2 er tæt på HTTP/1.x-implementeringen. Understøttelse af de individuelle indstillinger "http2_recv_timeout", "http2_idle_timeout" og "http2_max_requests" er udgået til fordel for de generelle direktiver "keepalive_timeout" og "keepalive_requests". Indstillingerne "http2_max_field_size" og "http2_max_header_size" er blevet fjernet, og "large_client_header_buffers" skal bruges i stedet.
  • Tilføjet en ny kommandolinjemulighed "-e", som giver dig mulighed for at angive en alternativ fil til at skrive fejlloggen, som vil blive brugt i stedet for den log, der er angivet i indstillingerne. I stedet for filnavnet kan du angive den specielle værdi stderr.

Kilde: opennet.ru

Tilføj en kommentar