Utgivelse nginx 1.20.0

Etter et år med utvikling har en ny stabil gren av den høyytelses HTTP-server og multi-protokoll proxy-server nginx 1.20.0 blitt introdusert, som inkluderer endringene som er akkumulert i hovedgrenen 1.19.x. I fremtiden vil alle endringer i stallgrenen 1.20 være relatert til eliminering av alvorlige feil og sårbarheter. Snart vil hovedgrenen til nginx 1.21 bli dannet, der utviklingen av nye funksjoner vil fortsette. For vanlige brukere som ikke har til oppgave å sikre kompatibilitet med tredjepartsmoduler, anbefales det å bruke hovedgrenen, på grunnlag av hvilke utgivelser av det kommersielle produktet Nginx Plus dannes hver tredje måned.

I følge en marsrapport fra Netcraft brukes nginx på 20.15 % av alle aktive nettsteder (for et år siden 19.56 %, for to år siden 20.73 %), noe som tilsvarer andreplassen i popularitet i denne kategorien (Apaches andel tilsvarer 25.38 % (for et år siden 27.64%), Google - 10.09%, Cloudflare - 8.51%. På samme tid, når man vurderer alle nettsteder, beholder nginx lederskapet og okkuperer 35.34% av markedet (for et år siden 36.91%, for to år siden - 27.52 %), mens Apaches andel tilsvarer 25.98 %, OpenResty (plattform basert på nginx og LuaJIT.) - 6.55 %, Microsoft IIS - 5.96 %.

Blant de millioner mest besøkte nettstedene i verden er nginx sin andel 25.55 % (for et år siden 25.54 %, for to år siden 26.22 %). For tiden kjører rundt 419 millioner nettsteder Nginx (459 millioner for et år siden). I følge W3Techs brukes nginx på 33.7 % av nettstedene av millionen mest besøkte, i april i fjor var dette tallet 31.9 %, året før – 41.8 % (nedgangen forklares med overgangen til separat regnskapsføring av Cloudflare http server). Apaches andel falt i løpet av året fra 39.5 % til 34 %, og Microsoft IIS sin andel fra 8.3 % til 7 %. LiteSpeeds andel vokste fra 6.3 % til 8.4 %, og Node.js fra 0.8 % til 1.2 %. I Russland brukes nginx på 79.1% av de mest besøkte nettstedene (for et år siden - 78.9%).

De mest bemerkelsesverdige forbedringene som ble lagt til under utviklingen av 1.19.x oppstrømsgrenen:

  • Lagt til muligheten til å verifisere klientsertifikater ved hjelp av eksterne tjenester basert på OCSP (Online Certificate Status Protocol)-protokollen. For å aktivere kontrollen, foreslås ssl_ocsp-direktivet, for å konfigurere cache-størrelsen - ssl_ocsp_cache, for å omdefinere URL-en til OCSP-behandleren spesifisert i sertifikatet - ssl_ocsp_responder.
  • Modulen ngx_stream_set_module er inkludert, som lar deg tilordne en verdi til variabelserveren { listen 12345; sett $true 1; }
  • Lagt til proxy_cookie_flags-direktiv for å spesifisere flagg for informasjonskapsler i proxy-tilkoblinger. For eksempel, for å legge til "httponly"-flagget til Cookie "one", og "nosecure" og "samesite=strict"-flaggene for alle andre informasjonskapsler, kan du bruke følgende konstruksjon: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;

    Et lignende userid_flags-direktiv for å legge til flagg i informasjonskapsler er også implementert for ngx_http_userid-modulen.

  • Lagt til direktivene "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command" og "uwsgi_ssl_conf_command", som du kan sette vilkårlige parametere for å konfigurere OpenSSL med. For eksempel, for å prioritere ChaCha-chiffer og avansert konfigurasjon av TLSv1.3-chiffer, kan du spesifisere ssl_conf_command Alternativer PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Lagt til "ssl_reject_handshake"-direktiv, som instruerer å avvise alle forsøk på å forhandle SSL-forbindelser (kan for eksempel brukes til å avvise alle anrop med ukjente vertsnavn i SNI-feltet). server { lytt 443 ssl; ssl_reject_handshake på; } server { lytt 443 ssl; servernavn eksempel.com; ssl_certificate example.com.crt; ssl_sertifikatnøkkel eksempel.no.nøkkel; }
  • Direktivet proxy_smtp_auth har blitt lagt til e-postproxyen, slik at du kan autentisere brukeren på backend ved å bruke AUTH-kommandoen og PLAIN SASL-mekanismen.
  • Lagt til "keepalive_time"-direktivet, som begrenser den totale levetiden til hver keep-alive-forbindelse, hvoretter forbindelsen vil bli stengt (ikke å forveksle med keepalive_timeout, som definerer inaktivitetstiden etter som keep-alive-forbindelsen stenges).
  • Lagt til $connection_time-variabel, gjennom hvilken du kan få informasjon om tilkoblingsvarigheten i sekunder med millisekunders presisjon.
  • En "min_free"-parameter er lagt til i direktivene "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" og "uwsgi_cache_path", som regulerer hurtigbufferstørrelsen basert på å bestemme minimumsstørrelsen på ledig diskplass.
  • Direktivene "lingering_close", "lingering_time" og "lingering_timeout" er tilpasset for å fungere med HTTP/2.
  • Koden for tilkoblingsbehandling i HTTP/2 er nær HTTP/1.x-implementeringen. Støtte for de individuelle innstillingene "http2_recv_timeout", "http2_idle_timeout" og "http2_max_requests" er avviklet til fordel for de generelle direktivene "keepalive_timeout" og "keepalive_requests". Innstillingene "http2_max_field_size" og "http2_max_header_size" er fjernet og "large_client_header_buffers" bør brukes i stedet.
  • Lagt til et nytt kommandolinjealternativ "-e", som lar deg spesifisere en alternativ fil for å skrive feilloggen, som vil bli brukt i stedet for loggen spesifisert i innstillingene. I stedet for filnavnet kan du spesifisere den spesielle verdien stderr.

Kilde: opennet.ru

Legg til en kommentar