Udgivelse af Pingora 0.4, rammeværk til oprettelse af netværkstjenester

Cloudflare har udgivet rammeværket Pingora 0.4, der er designet til at udvikle sikre, højtydende netværkstjenester på Rust-sprog. Proxyen, der er bygget ved hjælp af Pingora, har været i brug i Cloudflares indholdsleveringsnetværk i mere end to år i stedet for nginx og håndterer over 40 millioner forespørgsler i sekundet. Koden er skrevet på Rust og offentliggjort under Apache 2.0-licensen.

Funktioner i Pingora:

  • Understøttelse af HTTP/1 og HTTP/2 (HTTP/3 er på vej), samt muligheden for at skabe tjenester med egne protokoller eller UDP/TCP.
  • Understøttelse af flertrådet behandling af anmodninger i asynkront mode.
  • Mulighed for tilknytning af callback-håndterere og filtre, der gør det muligt at styre forskellige faser af anmodningsbehandlingen samt at ændre, omdirigere, blokere og logge anmodninger og svar.
  • Proxyering af gRPC og WebSocket.
  • Plug-in load-balancere.
  • Mulighed for at ændre konfigurationen uden genstart.
  • Understøttelse af opdatering af applikationskoden uden at afbryde forbindelser.
  • Værktøjer til lastskift i tilfælde af fejl (failover).
  • Integration med forskellige overvågnings- og logningssystemer (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Understøttelse af TLS-kryptering (OpenSSL, BoringSSL eller Rustls anvendes).
  • Klare Rust-pakker til opbygning af HTTP-proxy, arbejde med netværksprotokoller, parsing af HTTP-overskrifter, trafikovervågning og -begrænsning, load balancing, arbejde med den distribuerede hashtabel Ketama, vedligeholdelse af cache i hukommelsen og asynkron behandling af tidsafbrud.

Blandt ændringerne i den nye version:

  • Indledende støtte til kryptografibiblioteket Rustls, der bruger kryptoleverandører baseret på bibliotekerne aws-lc-rs og ring, som er baseret på BoringSSL.
  • Eksperimentel støtte til Windows-platformen.
  • Dummy TLS-tilstand, som kan anvendes i situationer, hvor det ikke er muligt at bruge en reel TLS-implementering.
  • Der er tilføjet støtte til gRPC-web-modulet til oversættelse af gRPC-web-klientforespørgsler til forespørgsler til server gRPC.
  • Muligheden for at håndtere H2C-forbindelser (HTTP/2 over rå TCP, uden kryptering) og HTTP/1 på en enkelt netværksport er blevet introduceret.
  • Muligheden for at tilslutte brugerdefinerede implementeringer af funktionen connect() for at ændre adfærden ved oprettelse af netværksforbindelser, f.eks. for at indstille yderligere muligheder for socketen eller simulere fejl ved test.
  • Muligheden for at ignorere informationssvar under proxying, såsom svar med headeren «Expect: 100-continue», er blevet introduceret.
  • Implementeret støtte til udpakning af svar, der er komprimeret med gzip.
  • Der er implementeret registrering af backendens tilstand til overvågning.
  • Mulighed for binding til et interval af lokale porte er blevet tilføjet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster