Cloudflare avaldas teise vĂ€ljaande Pingora raamistiku, mis on mĂ”eldud turvaliste kĂ”rge jĂ”udlusega vĂ”rgu teenuste arendamiseks Rust keeles. Pingora abil ehitatud pĂ€iste Proxy on umbes aasta aega kasutusel Cloudflare sisuteenuste vĂ”rgus nginxi asemel ning kĂ€sitleb ĂŒ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 luua teenuseid, mis kasutavad enda protokolle vÔi UDP/TCP.
- Mitme lĂ”ime toe vĂ”imalus asĂŒnkroonses reĆŸiimis pĂ€ringute töötlemiseks.
- Toetab callback-töötlejate ja filtrite kinnitamist, mis vÔimaldavad juhtida erinevaid pÀringu töötlemise etappe ning muuta, suunata, blokeerida ja logida pÀringuid ja vastuseid.
- 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 vĂ”i BoringSSL).
- 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:
- Lisatud toetus HTTP/2 tÀiendavate pÀiste filtrite seadistamiseks.
- Lisatud vÔimalus muuta TCP sissetulevate pakettide puhverserveri suurust.
- Lisatud funktsioon body_bytes_read().
- Lisatud filter cache_not_modified_filter.
- Lisatud vÔimalus TLS-vÔtmete logimise jaoks.
- Lisatud callback-funktsioon purge_response.
Allikas: opennet.ru
