Cloudflare tau tshaj tawm qhov thib ob tso tawm ntawm Pingora lub moj khaum, tsim los txhim kho kev ruaj ntseg, kev ua haujlwm siab hauv kev pabcuam hauv cov lus Rust. Lub npe, tsim siv Pingora, tau siv hauv Cloudflare cov ntsiab lus xa khoom siv tsis yog nginx li ib xyoos thiab ua tiav ntau dua 40 lab thov ib ob. Cov cai tau sau hauv Rust thiab luam tawm raws li Apache 2.0 daim ntawv tso cai.
Cov yam ntxwv tseem ceeb ntawm Pingora:
- Kev them nyiaj yug rau HTTP / 1 thiab HTTP / 2 (HTTP / 3 hauv cov phiaj xwm), nrog rau kev muaj peev xwm tsim cov kev pabcuam siv lawv tus kheej cov txheej txheem lossis UDP / TCP.
- Muaj peev xwm ua tau ntau txoj xov ntawm kev thov hauv hom asynchronous.
- Kev them nyiaj yug rau xa rov qab handlers thiab cov ntxaij lim dej uas tso cai rau koj los tswj ntau theem ntawm kev thov ua tiav, nrog rau kev hloov kho, hloov pauv, thaiv thiab kaw cov lus thov thiab cov lus teb.
- Proxying gRPC thiab WebSocket.
- Connectable load balancers.
- Muaj peev xwm hloov kev teeb tsa yam tsis tau rov pib dua.
- Txhawb kev hloov kho daim ntawv thov code yam tsis muaj kev sib txuas.
- Txhais tau hais tias rau load switching thaum tsis ua hauj lwm (failover).
- Kev koom ua ke nrog ntau yam kev saib xyuas thiab kev kaw lus (Syslog, Prometheus, Sentry, OpenTelemetry).
- Kev them nyiaj yug rau TLS encryption (siv OpenSSL lossis BoringSSL).
- Npaj cov pob zeb Rust rau kev tsim HTTP proxies, ua haujlwm nrog cov kev cai hauv network, txheeb xyuas HTTP headers, accounting thiab limiting traffic, load balance, ua hauj lwm nrog Ketama faib hash rooj, tswj lub cache hauv RAM thiab asynchronous ua ntawm timeouts.
Ntawm cov kev hloov nyob rau hauv lub tshiab version:
- Ntxiv kev txhawb nqa rau kev teeb tsa cov lim dej ntxiv rau HTTP / 2 headers.
- Ntxiv lub peev xwm los hloov qhov tsis loj ntawm cov pob khoom tuaj rau TCP.
- Ntxiv body_bytes_read() muaj nuj nqi.
- Ntxiv cache_not_modified_filter lim.
- Ntxiv lub peev xwm los teev TLS yuam sij.
- Ntxiv callback muaj nuj nqi purge_response.
Tau qhov twg los: opennet.ru
