Utgivelse nginx 1.18.0

Etter et år med utvikling representert av ny stabil gren av høyytelses HTTP-server og multiprotokoll proxy-server nginx 1.18.0, som absorberte endringene akkumulert innenfor hovedgrenen 1.17.x. I fremtiden vil alle endringer i den stabile grenen 1.18 være relatert til eliminering av alvorlige feil og sårbarheter. Hovedgrenen til nginx 1.19 vil snart bli dannet, der utviklingen av nye funksjoner vil fortsette. For vanlige brukere som ikke har som oppgave å sikre kompatibilitet med tredjepartsmoduler, anbefales bruk hovedgrenen, på grunnlag av hvilke utgivelser av det kommersielle produktet Nginx Plus dannes hver tredje måned.

I samsvar med april rapport Netcraft nginx brukes på 19.56 % av alle aktive nettsteder (for et år siden 20.73 %, for to år siden 21.02 %), noe som tilsvarer andreplassen i popularitet i denne kategorien (Apaches andel tilsvarer 27.64 %, Google – 10.03 %, Microsoft IIS - 4.77 %) . Samtidig, når man vurderer alle nettsteder, beholder nginx lederskapet og okkuperer 36.91% av markedet (for et år siden 27.52%), mens andelen til Apache tilsvarer 24.73%, Microsoft IIS - 12.85%, Google - 3.42%.

Blant de millioner mest besøkte nettstedene i verden er nginx sin andel 25.54 % (for et år siden 26.22 %, for to år siden 23.76 %). For tiden kjører rundt 459 millioner nettsteder Nginx (397 millioner for et år siden). Av Ifølge W3Techs nginx brukes på 31.9 % av nettstedene av millionen mest besøkte, i april i fjor var dette tallet 41.8 %, året før – 38 % (nedgangen forklares med overgangen til separat regnskapsføring av Cloudflare http-serveren). Apaches andel falt i løpet av året fra 43.6 % til 38.9 %, og Microsoft IIS sin andel fra 8.6 % til 8.3 %. I Russland nginx brukes på 78.9 % av de mest besøkte nettstedene (for et år siden - 81 %).

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

  • Direktiv lagt til limit_req_dry_run, som aktiverer prøvekjøringsmodusen, der ingen begrensninger brukes på intensiteten av forespørselsbehandlingen (uten hastighetsgrense), men fortsetter å ta hensyn til antallet forespørsler som overskrider grensene i delt minne;
  • Direktiv lagt til limit_conn_dry_run, som bytter ngx_http_limit_conn_module-modulen til testkjøringsmodus, der antall tilkoblinger ikke er begrenset, men tatt i betraktning;
  • Lagt til direktiv "godkjenningsforsinkelse", som lar deg legge til en forsinkelse på uautoriserte forespørsler med en svarkode på 401 for å redusere intensiteten av passordgjetting og beskytte mot angrep, manipulere målingen av utførelsestiden for operasjoner (timing angrep) ved tilgang til systemer som tilgangen er begrenset til passord, resultat av en underspørring eller J.W.T. (JSON Web Token);
  • Lagt til støtte for variabler i "limit_rate" og "limit_rate_after"-direktivene, så vel som i "proxy_upload_rate" og "proxy_download_rate"-direktivene til strømmodulen;
  • I direktivet grpc_pass lagt til støtte for å bruke en variabel i en parameter som definerer en adresse. Hvis adressen er spesifisert som et domenenavn, søkes navnet blant de beskrevne servergruppene, og hvis det ikke finnes, bestemmes det ved hjelp av en resolver;
  • Nye variabler lagt til $proxy_protocol_server_addr и $proxy_protocol_server_port, som inneholder serveradressen og porten hentet fra PROXY-protokolloverskriften;
  • I modulen ngx_stream_limit_conn_module variabel lagt til $limit_conn_status, som lagrer resultatet av å begrense antall tilkoblinger: PASSED, REJECTED eller REJECTED_DRY_RUN;
  • I modulen ngx_http_limit_req_module variabel lagt til $limit_req_status, som lagrer resultatet av å begrense antall ankomster av forespørsler: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN eller REJECTED_DRY_RUN;
  • Som standard er modulen satt sammen ngx_http_postpone_filter_module;
  • Lagt til støtte for veksling av navngitte "location"-blokker ved å bruke $r->internal_redirect()-metoden levert av den innebygde Perl-tolken. Denne metoden involverer nå behandling av URIer med escapede tegn;
  • Når du bruker "upstream"-direktivet i "upstream"-innstillingsblokkenhash» for å organisere lastbalansering med klient-server-binding, hvis du spesifiserer en tom nøkkelverdi, er den enhetlige balanseringsmodusen (round-robin) nå aktivert;
  • Lagt til støtte for å ringe ioctl(FIONREAD) hvis tilgjengelig for å unngå å lese fra en rask forbindelse over tid.

Kilde: opennet.ru

Legg til en kommentar