nginx 1.18.0 vrystelling

Na 'n jaar van ontwikkeling verteenwoordig deur nuwe stabiele tak van hoëprestasie HTTP-bediener en multiprotokol-instaanbediener nginx 1.18.0, wat die veranderinge wat binne die hooftak 1.17.x opgehoop is, geabsorbeer het. In die toekoms sal alle veranderinge in die stabiele tak 1.18 verband hou met die uitskakeling van ernstige foute en kwesbaarhede. Die hooftak van nginx 1.19 sal binnekort gevorm word, waarbinne die ontwikkeling van nuwe funksies sal voortgaan. Vir gewone gebruikers wat nie die taak het om versoenbaarheid met derdeparty-modules te verseker nie, word aanbeveel gebruik die hooftak, op grond waarvan vrystellings van die kommersiële produk Nginx Plus elke drie maande gevorm word.

Volgens April verslag Netcraft nginx word op 19.56% van alle aktiewe werwe gebruik ('n jaar gelede 20.73%, twee jaar gelede 21.02%), wat ooreenstem met die tweede plek in gewildheid in hierdie kategorie (Apache se aandeel stem ooreen met 27.64%, Google - 10.03%, Microsoft IIS - 4.77%) . Terselfdertyd, wanneer alle werwe oorweeg word, behou nginx sy leierskap en beslaan 36.91% van die mark ('n jaar gelede 27.52%), terwyl die aandeel van Apache ooreenstem met 24.73%, Microsoft IIS - 12.85%, Google - 3.42%.

Onder die miljoen webwerwe wat die meeste in die wêreld besoek word, is nginx se aandeel 25.54% ('n jaar gelede 26.22%, twee jaar gelede 23.76%). Tans bedryf ongeveer 459 miljoen webwerwe Nginx (397 miljoen 'n jaar gelede). Deur data W3Techs nginx word gebruik op 31.9% van webwerwe uit die miljoen wat die meeste besoek is, in April verlede jaar was hierdie syfer 41.8%, die jaar tevore - 38% (die afname word verklaar deur die oorgang na aparte rekeningkunde van die Cloudflare http-bediener). Apache se aandeel het oor die jaar van 43.6% tot 38.9% gedaal, en Microsoft IIS se aandeel van 8.6% tot 8.3%. In Rusland nginx word gebruik op 78.9% van die mees besoekte webwerwe ('n jaar gelede - 81%).

Die mees noemenswaardige verbeterings wat bygevoeg is tydens die ontwikkeling van die 1.17.x stroomop-tak:

  • Richtlijn bygevoeg limiet_req_droogloop, wat die proeflopiemodus aktiveer, waarin geen beperkings toegepas word op die intensiteit van versoekverwerking (sonder tarieflimiet), maar steeds die aantal versoeke in ag neem wat die limiete in gedeelde geheue oorskry;
  • Richtlijn bygevoeg limit_conn_dry_run, wat die ngx_http_limit_conn_module-module na toetsloopmodus oorskakel, waarin die aantal verbindings nie beperk is nie, maar in ag geneem word;
  • Bygevoeg opdrag "auth_delay", wat jou toelaat om 'n vertraging by ongemagtigde versoeke te voeg met 'n antwoordkode van 401 om die intensiteit van wagwoordraai te verminder en te beskerm teen aanvalle, manipulering van die meting van die uitvoeringstyd van bedrywighede (tydberekeningsaanval) wanneer toegang verkry word tot stelsels waartoe toegang beperk is wagwoord, gevolg van 'n subnavraag of J.W.T. (JSON Web Token);
  • Bygevoeg ondersteuning vir veranderlikes in die "limit_rate" en "limit_rate_after" riglyne, sowel as in die "proxy_upload_rate" en "proxy_download_rate" riglyne van die stroom module;
  • In die richtlijn grpc_pass bygevoeg ondersteuning vir die gebruik van 'n veranderlike in 'n parameter wat 'n adres definieer. As die adres as 'n domeinnaam gespesifiseer word, word die naam onder die beskryfde groepe bedieners gesoek, en, indien nie gevind nie, dan bepaal met behulp van 'n oplosser;
  • Nuwe veranderlikes bygevoeg $proxy_protocol_server_addr и $proxy_protocol_server_port, wat die bedieneradres en poort bevat wat van die PROXY-protokolopskrif verkry is;
  • In die module ngx_stream_limit_conn_module veranderlike bygevoeg $limit_conn_status, wat die resultaat stoor van die beperking van die aantal verbindings: PASSED, REJECTED of REJECTED_DRY_RUN;
  • In die module ngx_http_limiet_req_module veranderlike bygevoeg $limiet_req_status, wat die resultaat stoor van die beperking van die aankomstempo van versoeke: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN of REJECTED_DRY_RUN;
  • By verstek word die module saamgestel ngx_http_postpone_filter_module;
  • Bygevoeg ondersteuning vir die wisseling van genoemde "ligging" blokke met behulp van die $r->internal_redirect() metode wat deur die ingeboude Perl-tolk verskaf word. Hierdie metode behels nou die verwerking van URI's met ontsnapte karakters;
  • Wanneer die "stroomop"-aanwysing in die "stroomop"-instellingsblok gebruik wordhash» om lasbalansering met kliënt-bediener-binding te organiseer, as jy 'n leë sleutelwaarde spesifiseer, is die eenvormige balanseringsmodus (round-robin) nou geaktiveer;
  • Bygevoeg ondersteuning vir die oproep van ioctl (FIONREAD) indien beskikbaar om te verhoed dat lees vanaf 'n vinnige verbinding met verloop van tyd.

Bron: opennet.ru

Voeg 'n opmerking