I-Cloudflare ipapashe ukukhululwa kwe-Pingora 0.4 isakhelo, eyenzelwe ukuphuhlisa iinkonzo zenethiwekhi ezikhuselekileyo, eziphezulu zokusebenza ngolwimi lweRust. I-proxy eyakhiwe ngokusebenzisa i-Pingora isetyenziswe kwinethiwekhi yokuhanjiswa kwe-Cloudflare endaweni ye-Nginx iminyaka engaphezu kweminyaka emibini kwaye iqhuba izicelo ezingaphezu kwezigidi ze-40 ngesekhondi. Ikhowudi ibhalwe kwi-Rust kwaye ipapashwe phantsi kwelayisensi ye-Apache 2.0.
Iimpawu eziphambili zePingora:
- Inkxaso ye-HTTP / 1 kunye ne-HTTP / 2 (i-HTTP / 3 kwizicwangciso), kunye nokukwazi ukudala iinkonzo usebenzisa i-protocols zabo okanye i-UDP / TCP.
- Inkxaso yokusetyenzwa kwemisonto emininzi yezicelo kwimo ye-asynchronous.
- Ukukwazi ukuqhoboshela abaphangi be-callback kunye nezihluzi ezikuvumela ukuba ulawule izigaba ezahlukeneyo zokucwangciswa kwesicelo, kunye nokuguqula, ukuqondisa kwakhona, ukubhloka kunye nezicelo zelogi kunye neempendulo.
- Ukwenza ummeli we-gRPC kunye neWebSocket.
- Izikali zomthwalo eziqhagamshelekayo.
- Ukukwazi ukutshintsha uqwalaselo ngaphandle kokuqalisa kwakhona.
- Inkxaso yokuhlaziya ikhowudi yesicelo ngaphandle kokuqhawula imidibaniso.
- Iindlela zokutshintsha umthwalo kwimeko yokusilela (ukungaphumeleli).
- Ukudityaniswa neenkqubo ezahlukeneyo zokubeka iliso kunye nokugawulwa kwemithi (Syslog, Prometheus, Sentry, OpenTelemetry).
- Inkxaso yoguqulelo oluntsonkothileyo lwe-TLS (usebenzisa i-OpenSSL, iBoringSSL okanye iRustls).
- Iiphakheji ze-Rust esele zilungele ukudala i-HTTP proxies, ukusebenza kunye neeprothokholi zenethiwekhi, ukusabalalisa iintloko ze-HTTP, ukubalwa kwemali kunye nokunciphisa i-traffic, ukulinganisa umthwalo, ukusebenza kunye ne-Ketama esasaza itafile ye-hash, ukugcina i-cache kwi-RAM kunye nokulungiswa kwe-asynchronous of timeouts.
Phakathi kotshintsho kwinguqulelo entsha:
- Inkxaso yokuqala kwilayibrari ye-cryptography ye-Rustls usebenzisa ababoneleli be-crypto ngokusekelwe kwii-aws-lc-rs kunye namathala eencwadi asekwe kwi-BoringSSL.
- Inkxaso yeqonga lovavanyo Windows.
- Imodi ye-TLS ye-Dummy, enokusetyenziswa kwiimeko apho akunakwenzeka ukusebenzisa ukuphunyezwa kwe-TLS yokwenene.
- Inkxaso eyongezelelweyo kwimodyuli ye-gRPC-web ukuguqulela izicelo zabathengi be-gRPC-web zibe zizicelo eziya ku- umncedisi i-gRPC.
- Inika amandla okuphatha i-H2C (i-HTTP / 2 ngaphezu kwe-TCP engenanto, akukho ufihlo) kunye ne-HTTP / 1 ukudibanisa kwi-port yenethiwekhi efanayo.
- Kongezwe ukukwazi ukudibanisa ukuphunyezwa kwakho koqhagamshelo () umsebenzi wokutshintsha indlela yokuziphatha xa useka uqhagamshelwano lwenethiwekhi, umzekelo, ukuseta iinketho ezongezelelweyo zesokethi okanye ukulinganisa iimpazamo ngexesha lovavanyo.
- Kubonelelwe ngesakhono sokungahoyi iimpendulo zolwazi xa usenza ummeli, njengeempendulo ezinombhalo othi "Lindela: 100-qhubeka".
- Inkxaso eyongeziweyo yokukhupha iimpendulo ezicinezelweyo ze-gzip.
- Ukwenziwa kobalo-mali lwe-backend state ngeenjongo zokubeka iliso.
- Kongezwe ukukwazi ukubophelela kuluhlu lwamazibuko asekuhlaleni.
umthombo: opennet.ru
