Cloudflare har slÀppt version 0.6 av Pingora-ramverket, som Àr avsett för utveckling av sÀkra högpresterande nÀtverksservicer i Rust. Proxy som byggts med Pingora har anvÀnts i Cloudflares CDN i över tvÄ Är som alternativ till nginx och hanterar över 40 miljoner förfrÄgningar per sekund. Koden Àr skriven i 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:
- Vid avslutning av arbetet sÀkerstÀlls att namnen pÄ runtime-komponenterna loggas för att underlÀtta diagnostisering av problem orsakade av avsaknad av runtime-komponenter som leder till förseningar vid avslutning.
- Ăvervakning av exekveringsfaser har inkluderats. servern, information om vilka kan vara anvĂ€ndbar för övervakning eller för att sĂ€kerstĂ€lla hög tillgĂ€nglighet. Vid Ă€ndring av exekveringsfas genereras ett meddelande om ExecutionPhase som kan fĂ„ngas via API-servern Server::watch_execution_phase.
- Det Àr tillÄtet att placera komprimerade ordböcker i minnet.
- I implementationen av http-servern och http-proxyn har direktiven HttpServerOptions och H2Options lagts till.
- Skydd mot MadeYouReset-attacker har implementerats, vilket möjliggör denial-of-service genom manipulation av kontrollramar i HTTP/2.
KĂ€lla: opennet.ru
