Lansering av Pingora 0.7, ramverket för att skapa nÀtverkstjÀnster

Företaget Cloudflare har slÀppt version 0.7 av ramverket Pingora, som Àr avsett för utveckling av skyddade, högpresterande nÀtverkstjÀnster pÄ Rust. Proxy byggd med Pingora har redan anvÀnts i Cloudflares innehÄllsleveransnÀtverk i mer Àn tvÄ Är istÀllet för nginx och hanterar mer Àn 40 miljoner förfrÄgningar per sekund. Koden Àr skriven pÄ Rust och publicerad under Apache 2.0-licensen.

Huvudfunktioner i Pingora:

  • Stöd för HTTP/1 och HTTP/2 (HTTP/3 Ă€r planerat) samt möjlighet att skapa tjĂ€nster som anvĂ€nder egna protokoll eller UDP/TCP.
  • Stöd för flerdelad behandling av förfrĂ„gningar i asynkront lĂ€ge.
  • Möjlighet att fĂ€sta callback-handledare och filter som möjliggör styrning av olika steg i förfrĂ„gningshanteringen, samt att Ă€ndra, omdirigera, blockera och logga förfrĂ„gningar och svar.
  • Proxy för gRPC och WebSocket.
  • Anpassningsbara lastbalanserare.
  • Möjlighet att Ă€ndra konfigurationen utan omstart.
  • Stöd för att uppdatera applikationskoden utan att bryta anslutningar.
  • Verktyg för lastvĂ€xling vid fel (failover).
  • Integration med olika övervaknings- och logghanteringssystem (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Stöd för TLS-kryptering (anvĂ€nder OpenSSL, BoringSSL eller Rustls).
  • FĂ€rdiga Rust-paket för att skapa HTTP-proxy, arbeta med nĂ€tverksprotokoll, analysera HTTP-rubriker, övervaka och begrĂ€nsa trafik, balansera last, arbeta med den distribuerade hash-tabellen Ketama, upprĂ€tthĂ„lla cache i minnet samt asynkron hantering av tidsgrĂ€nser.

Bland förÀndringarna i den nya versionen:

  • I strukturen SslDigest har ett fĂ€lt 'extension' lagts till och för typen TlsAccept har en handler för handshake_complete_callback implementerats, vilket möjliggör att fĂ€sta applikationsspecifik data till TLS-anslutningen. Som exempel visas hur denna funktion kan anvĂ€ndas för att skapa servern, som lĂ€ser information frĂ„n klientcertifikatet och returnerar det i HTTP-svaret.
  • En typ ConnectionFilter har lagts till för filtrering av TCP-anslutningar vid steg före TLS-parametrar, vilket sparar resurser genom att avbryta anslutningar i ett tidigt skede.
  • Stöd för virtuella transportnivĂ„flöden (Virtual L4 Streams) har lagts till, vilket möjliggör integration av egna implementationer av nĂ€tverksprotokoll i pingora-proxy.
  • Möjlighet att anvĂ€nda alternativen verify_cert och verify_hostname i konfigurationer med rustls har implementerats.
  • För externa crate-paket har Ă„tkomst till HttpProxy-strukturen beviljats för att överskrida logiken för att proxya förfrĂ„gningar.
  • Det har blivit tillĂ„tet att separera bakgrundshanterare av delförfrĂ„gningar frĂ„n huvudsessionens hanterare.
  • Möjlighet att spĂ„ra storleken pĂ„ HTTP1 och HTTP2 förfrĂ„gningskroppar samt proxyverksamhetsmetrik har tillhandahĂ„llits.
  • Möjlighet att skapa egna sessioner för inkapslad HTTP-trafik har lagts till.
  • Det har införts begrĂ€nsningar för att anvĂ€nda versioner av biblioteket lru (0.16.3 eller nyare) pĂ„ grund av en sĂ„rbarhet i implementationen av iteratorn IterMut, vilket kan leda till krasch pĂ„ grund av att lĂ„necheckern aktiveras.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster