Pingora 0.7 väljaanne, raamistik võrgu teenuste loomiseks.

Cloudflare on välja andnud Pingora 0.7 raamistikku, mis on mõeldud Rust keeles turvaliste ja kõrge jõudlusega võrguteenuste arendamiseks. Pingora abil ehitatud proksi on juba üle kahe aasta kasutusel Cloudflare'i sisuhalduse võrgus, asendades nginx'i ja töötluses on üle 40 miljoni päringu sekundis. Kood on kirjutatud Rust keeles ja avaldatud Apache 2.0 litsentsi alusel.

Pingora peamised omadused:

  • Toetab HTTP/1 ja HTTP/2 (plaanis on HTTP/3) ning võimaldab teenuste loomist, mis kasutavad oma protokolle või UDP/TCP.
  • Toetab mitme lõimega päringute töötlemist asünkroonses režiimis.
  • Võimalus kinnitada callback-käitlejaid ja filtreid, mis võimaldavad hallata erinevaid päringu töötlemise etappe, samuti muuta, suunata, blokeerida ja logida päringute ja vastuste kujundust.
  • gRPC ja WebSocket-i proksimine.
  • Lisanduvad koormuse tasakaalurid.
  • Võimalus muuta konfiguratsiooni ilma taaskäivitamiseta.
  • Toetab rakenduskoodi värskendamist ühenduste katkestamatuks.
  • Vahendid koormuse ümbersuunamiseks tõrgete korral (failover).
  • Integreeritud erinevate jälgimis- ja logimissüsteemidega (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Toetab TLS-krüptimist (kasutatakse OpenSSL, BoringSSL või Rustls).
  • Valmis Rusti paketid HTTP-proksi loomiseks, võrgu protokollidega töötamiseks, HTTP-pealkirjade eraldamiseks, liikluse arvestamiseks ja piiramiseks, koormuse tasakaalustamiseks, jaotatud rippmenüüd Ketama haldamiseks, mälus hoidmiseks ja asünkroonselt töötlemiseks.

Uues versioonis on järgmised muudatused:

  • SslDigest struktuuri on lisatud väli 'extension' ja TlsAccept tüübi jaoks on rakendatud käsitleja handshake_complete_callback, mis võimaldab TLS-ühendusele kinnitada rakendusspetsiifilisi andmeid. Näitena on näidatud, kuidas seda võimalust kasutada. serverid, et lugeda kliendi sertifikaadist teavet ja tagastada see HTTP-reaktsioonis.
  • Lisatud on ConnectionFilter tüübi, et filtreerida TCP-ühendusi enne TLS parameetrite läbirääkimiste etappi, mis võimaldab ressursse säästa, katkestades ühendused varajases etapis.
  • Lisatud on tugiteenuse virtuaalsed tasemed (Virtual L4 Streams), mis võimaldavad pingora-proxy'le integreerida oma võrguprotokollide rakendusi.
  • Rakendatud on võimalus kasutada opties 'verify_cert' ja 'verify_hostname' konfiguratsioonides, kus on rustls.
  • Välistest crate-pakettidest on lubatud juurdepääs HttpProxy struktuurile, et ülekirjutada päringute proximise loogikat.
  • Lubatud on taustatöötluse eraldamine alamküsimustest peamisest sessiooni töötlejast.
  • Pakkuda on võimalus jälgida HTTP1 ja HTTP2 päringute kehade suurust ning proksi töötamise metriikat.
  • Lisatud on võimalus luua oma seansse enkapsuleeritud HTTP-liikluse jaoks.
  • Seatud on piirangud lru raamatukogu versioonide (0.16.3 või uuem) kasutamiseks, kuna IterMut'i käsitleja rakendamise haavatavus võib põhjustada kokkuvarisemise, kui kontrollitakse muutujate laenamise (borrow checker) reeglite järgimist.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster