Pingora 0.7, võrguteenuste loomise raamistik

Cloudflare on välja andnud Pingora 0.7 raamistikku, mis on mõeldud kaitstud, kõrg jõudlusega võrguteenuste arendamiseks Rust keeles. Pingora abil ehitatud proxyt on kasutatud Cloudflare'i sisu edastamise võrgus juba üle kahe aasta, asendades nginx-i ja töötledes rohkem kui 40 miljonit päringut sekundis. Kood on kirjutatud Rusti keeles ja avaldatud Apache 2.0 litsentsi all.

Pingora põhifunktsionaalsused:

  • Toetab HTTP/1 ja HTTP/2 (plaanis on HTTP/3) ning võimaldab luua teenuseid, mis kasutavad oma protokolle või UDP/TCP.
  • Toetab mitme lõimega päringute töötlemist asünkroonses režiimis.
  • Pakub võimalust lisada callback-töötlejaid ja filtreid, mis võimaldavad juhtida erinevaid päringute töötlemise etappe, samuti muuta, suunata, blokeerida ja logida päringud ja vastused.
  • gRPC ja WebSocketi proxü.
  • Liidetavad koormuse tasakaalustajad.
  • Pakub võimalust muuta konfiguratsiooni ilma taaskäivituseta.
  • Toetab rakenduse koodi uuendamist ühenduste katkestamata.
  • Rikkete korral koormuse üleviimise tööriistad (failover).
  • Integreerimine erinevate jälgimis- ja logimisüsteemidega (Syslog, Prometheus, Sentry, OpenTelemetry).
  • TLS-krüpteerimise tugi (kasutatavad OpenSSL, BoringSSL või Rustls).
  • Valmis Rust-paketid HTTP-proxide loomiseks, võrguprotokollide haldamiseks, HTTP-peade analüüsimiseks, liikluse arvestamiseks ja piiramiseks, koormuse jagamiseks, jaotatud hash-tabeli Ketama kasutamiseks, vahemälu aktiivmälu hoidmiseks ja asünkroosse ajakauguse töötlemiseks.

Uue versiooni muudatuste hulgas on:

  • SslDigest struktuuri on lisatud väli «extension», ja TlsAccept tüüpi jaoks on rakendatud handshake_complete_callback käitleja, mis võimaldab TLS-ühendusele kinnitada rakendusele spetsiifilisi andmeid. Näidatud on, kuidas seda võimalust kasutada, et luua serverile, mis loeb kliendi sertifikaadist teavet ja tagastab selle HTTP-vastuses.
  • On lisatud ConnectionFilter tüüp, mis filtreerib TCP-ühendusi TLS-i parameetrite kokkuleppe eel, võimaldades ressursse säästa, lõpetades ühendused varases staadiumis.
  • On lisatud toetus virtuaalsetele transporttase voogudele (Virtual L4 Streams), mis võimaldab pingora-proxy-sse integreerida enda võrguprotokollide teostusi.
  • On võimalik kasutada verify_cert ja verify_hostname valikuid rustls konfiguratsioonides.
  • Välistesse crate-pakettidesse on lubatud juurdepääs HttpProxy struktuurile, et üle kirjutada päringute vahendamise loogikat.
  • Lubatud on taustprotsessorite eraldamine alamküsimustest põhiseansi töötlejas.
  • Pakutakse võimalust jälgida HTTP1 ja HTTP2 päringute kehade suurust, samuti proxy töö mõõdikuid.
  • Lisatud on võimalus luua isiklikke seansse kapseldatud HTTP-liikluse jaoks.
  • Kohustuslikud piirangud versioonide kasutamisele lru teegist (0.16.3 või uuem) seoses IterMut iteratsiooni rakenduse haavatavusega, mis põhjustab kokkukukkumise muutuja laenamise kontrollimise (borrow checker) tõttu.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster