Predstavljen je izid glavne veje nginx 1.27.5, v kateri se nadaljuje razvoj novih možnosti. V paralelno podprto stabilno vejo 1.26.x se uvajajo samo spremembe, povezane z odpravo resnih napak in ranljivosti. V prihodnje bo na osnovi glavne veje 1.27.x oblikovana stabilna veja 1.28. Koda projekta je napisana v jeziku C in se distribucira pod licenco BSD.
Med spremembami v nginx 1.27.5:
- Za povezave, ki uporabljajo protokol QUIC, je bila dodana podpora za algoritem upravljanja omrežne preobremenitve CUBIC (RFC 9438), katerega delovanje se zmanjšuje na postopno povečanje velikosti okna preobremenitve do pojava izgube paketov, po kateri se velikost okna vrne na vrednost pred izgubo. V opravljenih testih je uporaba CUBIC omogočila zmanjšanje časa prenosa datoteke velikosti 500MB za 24 % pri zakasnitev 40 ms in BDP 750K (Bandwidth Delay Product) ter za 73 % pri zakasnitev 100 ms in BDP 9M.
- Največja velikost, ki se predpomni v skupni pomnilnik SSL-sejanskih podatkov, je povečana na 8192.
- Učinkovito je bila izvedena gradnja s C-knjižnico Musl.
- Izvedena so bila dela na optimizaciji zmogljivosti in odpravi napak v implementaciji HTTP/3.
- Odpravljene so napake pri izvajanju direktiv «grpc_ssl_password_file», «proxy_ssl_password_file» in «uwsgi_ssl_password_file», ki so se pojavile pri nalaganju SSL-certifikatov in šifrirnih ključev iz spremenljivk.
- Odpravljene so težave z nastavitvijo spremenljivk $ssl_curve in $ssl_curves pri uporabi priključnih izvedb eliptičnih krivulj v OpenSSL.
Poleg tega lahko omenimo objavo stabilnih različic projekta FreeNginx 1.27.5 in 1.27.6, ki razvija fork Nginx. Razvoj forka vodi Maksim Dunin, eden ključnih razvijalcev Nginx. FreeNginx se pozicionira kot neprofitni projekt, ki zagotavlja razvoj kode baze Nginx brez korporativnega vmešavanja.
Spremembe v FreeNginx 1.27.5 in 1.27.6:
- Rešene so težave pri uporabi OpenSSL 3.5 (v spremenljivkah $ssl_curve in $ssl_curves se ni prikazovalo ime skupine X25519MLKEM768).
- Odpravljeno je bilo nepričakovano končanje delovnega postopka v konfiguracijah z direktivo proxy_ssl_password_file, ki se je izražalo pri navajanju spremenljivk v direktivah proxy_ssl_certificate in proxy_ssl_certificate_key.
- Direktivi listen je dodana podpora za parameter multipath.
- Prepovedano je ponovno uporabo SSL-seans med strežniki, ki uporabljajo različne certifikate v direktivi ssl_trusted_certificate, pri vključeni preverjanju odjemalskih SSL-certifikatov.
- Rešena je bila težava z ponovno uporabo seans v kontekstu drugega virtualnega strežnika pri uporabi TLSv1.3 z OpenSSL 1.1.1e+.
- Rešena je težava pri uporabi zlib-ng.
Poleg tega je izšla različica njs 0.8.10, modula za integracijo razlagalnikov programskega jezika JavaScript v http strežnik nginx. Podpira povezave različnih JavaScript motorjev. Kot osnovni se ponuja lasten motor QuickJS, ki podpira specifikacijo ECMAScript 2023. Njs omogoča uporabo JavaScript skript v konfiguraciji za razširitev zmogljivosti nginx. Skripti se lahko uporabljajo za določanje razširjene logike obdelave zahtev, oblikovanje konfiguracije, dinamično generacijo odgovorov, modifikacijo zahtev/odgovorov ali hitro ustvarjanje nadomestnih rešitev za težave v spletnih aplikacijah.
Spremembe v njs 0.8.10:
- V JavaScript motor QuickJS je bila dodana podpora za API WebCrypto, TextEncoder in TextDecoder.
- V motor QuickJS so dodani novi moduli querystring, crypto in xml.
- Dodana je podpora za knjižnico QuickJS-NG.
- V modulu za nginx je implemented branje vsebine r.requestText in r.requestBuffer iz začasne datoteke.
Izvor: opennet.ru
