Pärast 13 kuu arendust on esitatud uus stabiilne haru kõrge jõudlusega HTTP-serverist ja mitme protokolliga proxyst nginx 1.22.0, mis on sisaldanud muudatusi, mis on kogunenud peaharus 1.21.x. Edaspidi seotakse kõik muudatused stabiilses harus 1.22 tõsiste vigade ja haavatavuste kõrvaldamisega. Peagi loob peaharu nginx 1.23, milles jätkatakse uute võimaluste arendamist. Tavalistele kasutajatele, kellel ei ole vajadust tagada ühilduvust kolmandate osapoolte moodulitega, soovitatakse kasutada peaharud, mille baasil luuakse iga kolme kuu tagant kommertstoote Nginx Plus väljaandeid.
Aprili aruande kohaselt kasutab ettevõte Netcraft nginx 20,08% kõikidest aktiivsetest veebisaitidest (aasta tagasi 20,15%, kaks aastat tagasi 19,56%), mis teeb sellest teise kõige populaarsema kategooria (Apache osakaal on 22,58% (aasta tagasi 25,38%), Cloudflare — 10,42% (8,51%), Google — 8,89% (10,09%). Samuti säilitab nginx liidripositsiooni, hõlmates 31,13% turust (aasta tagasi 35,34%, kaks aastat tagasi 36,91%), samal ajal kui Apache osakaal on 23,08% (25,98%), OpenResty (nginx ja LuaJIT baasil) — 8,01% (6,55%), Cloudflare — 5,49%, Microsoft IIS — 4% (5,96%).
Maailma miljoni kõige külastatavama veebisaidi seas moodustab nginx osakaal 21,79% (aasta tagasi 23,06%, kaks aastat tagasi 25,54%). Praegu on umbes 361 miljonit veebisaiti nginx-i halduses (aasta tagasi 419 miljonit). W3Techsi andmetel on nginx kasutusel 33,5% miljonist kõige külastatumast veebisaidist, eelmise aasta mais oli see näitaja 33,8%, eelmisel aastal 31,9%. Apache osakaal langes aastaga 33,8% -lt 31,5% -le ja Microsoft IIS osakaal 7% -lt 6% -le. LiteSpeed'i osakaal kasvas 8,5% -lt 12,1% -le ja Node.js 1,2% -lt 1,9% -le. Venemaal kasutatakse nginx-i 79,8% kõige külastatavamatest veebisaitidest (aasta tagasi — 79,1%).
Tõhusaimad uuendused, mis on lisatud 1.21.x põhiharu arendamise käigus:
- Direktiivides «proxy_ssl_certificate», «proxy_ssl_certificate_key», «grpc_ssl_certificate», «grpc_ssl_certificate_key», «uwsgi_ssl_certificate» ja «uwsgi_ssl_certificate_key» on lisatud muutujate tugi.
- Postiprotokolli vahetusse on lisatud «pipelining» režiimi tugi, et edastada mitmeid POP3 või IMAP päringuid ühes ühenduses, samuti on lisatud uus direktiiv «max_errors», mis määrab maksimaalse protokolli viga arvu, pärast mida ühendus suletakse.
- On rakendatud päiste edastamine «Auth-SSL-Protocol» ja «Auth-SSL-Cipher» serverile postiprograafia autentimise jaoks.
- Stream-moodulisse on lisatud TLS-i ALPN laienduse tugi. ALPN-i (h2, http/1.1) toetatavate protokollide loendi määramiseks on pakutud direktiiv ssl_alpn, ning kokkulepitud kliendiga protokolli ALPN teabe saamiseks on tutvustatud muutujat $ssl_alpn_protocol.
- Stream-moodulisse on lisatud parameeter «fastopen», mis aktiveerib «TCP Fast Open» režiimi kuulamisportide jaoks.
- On seadistatud märkide «»», «», «\», «^», «`», «{«, «|» ja «}» põgenemine proxy’ga URI muutmisega.
- Stream moodulisse on lisatud käsk proxy_half_close, millega saab seadistada käitumist TCP-proksitud ühenduse sulgemisel ühelt poolt ("TCP half-close").
- ngx_http_mp4_module moodulisse on lisatud uus käsk mp4_start_key_frame, mis võimaldab edastada videovoogu alates võti kaadrilt.
- Lisatud muutuja $ssl_curve, mis tagastab elliptilise kõverate tüübi, valitud võtmete kokkuleppeks TLS-i seansil.
- Käsus "sendfile_max_chunk" on vaikeseade muudetud 2 megabaitiks;
- Tagatud ühilduvus OpenSSL 3.0 teegiga. Lisatud tugi funktsioonile SSL_sendfile(), kasutades OpenSSL 3.0.
- Vaikimisi on lisatud PCRE2 teegi tugi, mis pakub regulaaravaldiste töötlemise funktsioone.
- Sertifikaatide laadimisel serverile on rakendatud turvatasemeid, mida toetatakse alates OpenSSL 1.1.0 ja mis määratakse parameetriga "@SECLEVEL=N" käsus ssl_ciphers.
- Toetust ekspordikrimisha koode on lõpetatud.
- Küsimuse kehafiltrimise API-s on lubatud töödeldud andmete puhverdamine.
- FreeBSD platvormil on parandatud süsteemi kõne sendfile tugi, mis on mõeldud andmete otsetransfeeriks failidesse ja soketitesse. Süsteem on pidevalt seadistatud sendfile(SF_NODISKIO) režiimile ning lisatud on tuge sendfile(SF_NOCACHE) režiimile.
- Toetuse lõpetamine HTTP/2 ühenduste seadistamisele, kasutades laiendust NPN (Next Protocol Negotiation) asemel ALPN.
- HTTP/1.0 päringute blokeerimine, mis sisaldavad HTTP päist „Transfer-Encoding“ (ilmus HTTP/1.1 protokolli versioonis).
- Parandatud kaitset „HTTP Request Smuggling“ rünnete vastu, mis ulatuvad front-end ja back-end süsteemide vahele, lubades sissetungimist teiste kasutajate päringute sisusse, mida töödeldakse samas voos front-end ja back-end vahel. Nginx tagastab nüüd alati veateate, kui kasutatakse CONNECT meetodit; samal ajal, kui on määratud päised „Content-Length“ ja „Transfer-Encoding“; kui päringu, HTTP päise nime või päise „Host“ väärtuse reas on tühikuid või juhtsignaale.
Allikas: opennet.ru
