nginx 1.18.0 udgivelse

Efter et års udvikling fremlagde ny stabil gren af ​​højtydende HTTP-server og multiprotokol-proxyserver nginx xnumx, som absorberede ændringerne akkumuleret inden for hovedgrenen 1.17.x. I fremtiden vil alle ændringer i den stabile gren 1.18 være relateret til eliminering af alvorlige fejl og sårbarheder. Hovedgrenen af ​​nginx 1.19 vil snart blive dannet, inden for hvilken udviklingen af ​​nye funktioner vil fortsætte. For almindelige brugere, der ikke har til opgave at sikre kompatibilitet med tredjepartsmoduler, anbefales bruge hovedgrenen, på grundlag af hvilken udgivelser af det kommercielle produkt Nginx Plus dannes hver tredje måned.

I overensstemmelse med april rapport Netcraft nginx bruges på 19.56% af alle aktive sider (for et år siden 20.73%, for to år siden 21.02%), hvilket svarer til andenpladsen i popularitet i denne kategori (Apaches andel svarer til 27.64%, Google - 10.03%, Microsoft IIS - 4.77 %). På samme tid, når man betragter alle websteder, bevarer nginx sin lederskab og indtager 36.91% af markedet (for et år siden 27.52%), mens Apaches andel svarer til 24.73%, Microsoft IIS - 12.85%, Google - 3.42%.

Blandt de millioner mest besøgte websteder i verden er nginx's andel 25.54% (for et år siden 26.22%, for to år siden 23.76%). I øjeblikket kører omkring 459 millioner websteder Nginx (397 millioner for et år siden). Ved Ifølge W3Techs nginx bruges på 31.9% af websteder ud af den million mest besøgte, i april sidste år var dette tal 41.8%, året før - 38% (faldet forklares med overgangen til separat bogføring af Cloudflare http-serveren). Apaches andel faldt i løbet af året fra 43.6% til 38.9%, og Microsoft IIS's andel fra 8.6% til 8.3%. I Rusland nginx brugt på 78.9 % af de mest besøgte websteder (for et år siden - 81 %).

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

  • Direktiv tilføjet limit_req_dry_run, som aktiverer prøvekørselstilstanden, hvor der ikke anvendes begrænsninger på intensiteten af ​​anmodningsbehandling (uden hastighedsgrænse), men fortsætter med at tage højde for antallet af anmodninger, der overskrider grænserne i delt hukommelse;
  • Direktiv tilføjet limit_conn_dry_run, som skifter ngx_http_limit_conn_module-modulet til testkørselstilstand, hvor antallet af forbindelser ikke er begrænset, men tages i betragtning;
  • Tilføjet direktiv "auth_delay", som giver dig mulighed for at tilføje en forsinkelse til uautoriserede anmodninger med en svarkode på 401 for at reducere intensiteten af ​​adgangskodegætning og beskytte mod angrebmanipulering af målingen af ​​udførelsestiden for operationer (timing angreb) ved adgang til systemer, hvortil adgangen er begrænset adgangskode, resultatet af en underforespørgsel eller J.W.T. (JSON Web Token);
  • Tilføjet understøttelse af variabler i "limit_rate" og "limit_rate_after"-direktiverne, såvel som i "proxy_upload_rate" og "proxy_download_rate"-direktiverne for streammodulet;
  • I direktivet grpc_pass tilføjet støtte til at bruge en variabel i en parameter, der definerer en adresse. Hvis adressen er angivet som et domænenavn, søges navnet blandt de beskrevne grupper af servere, og hvis det ikke findes, bestemmes det ved hjælp af en resolver;
  • Nye variable tilføjet $proxy_protocol_server_addr и $proxy_protocol_server_port, som indeholder serveradressen og porten hentet fra PROXY-protokolheaderen;
  • I modulet ngx_stream_limit_conn_module variabel tilføjet $limit_conn_status, som gemmer resultatet af begrænsning af antallet af forbindelser: PASSED, REJECTED eller REJECTED_DRY_RUN;
  • I modulet ngx_http_limit_req_module variabel tilføjet $limit_req_status, som gemmer resultatet af at begrænse antallet af anmodningers ankomst: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN eller REJECTED_DRY_RUN;
  • Som standard er modulet samlet ngx_http_postpone_filter_module;
  • Tilføjet understøttelse til at skifte navngivne "placering"-blokke ved hjælp af $r->internal_redirect() metoden leveret af den indbyggede Perl-fortolker. Denne metode involverer nu behandling af URI'er med escapede tegn;
  • Når du bruger "upstream"-direktivet i "upstream"-indstillingsblokkenhash» for at organisere belastningsbalancering med klient-server-binding, hvis du angiver en tom nøgleværdi, er den ensartede balanceringstilstand (round-robin) nu aktiveret;
  • Tilføjet understøttelse til at kalde ioctl(FIONREAD), hvis tilgængeligt for at undgå at læse fra en hurtig forbindelse over tid.

Kilde: opennet.ru

Tilføj en kommentar