Ua hoʻopuka ʻo Cloudflare i ka hoʻokuʻu ʻana o ka Pingora 0.4 framework, i hoʻolālā ʻia no ka hoʻomohala ʻana i nā lawelawe pūnaewele paʻa, hana kiʻekiʻe ma ka ʻōlelo Rust. Ua hoʻohana ʻia ka proxy i kūkulu ʻia me ka hoʻohana ʻana iā Pingora i ka ʻoihana hoʻolaha ʻike Cloudflare ma kahi o Nginx no nā makahiki ʻelua a ʻoi aku ka ʻoi aku ma mua o 40 miliona mau noi i kēlā me kēia kekona. Ua kākau ʻia ke code ma Rust a paʻi ʻia ma lalo o ka laikini Apache 2.0.
ʻO nā hiʻohiʻona nui o Pingora:
- Kākoʻo no HTTP/1 a me HTTP/2 (HTTP/3 i nā hoʻolālā), a me ka hiki ke hana i nā lawelawe me ka hoʻohana ʻana i kā lākou mau protocol a i ʻole UDP/TCP.
- Kākoʻo no ka hoʻoili ʻana i nā noi ma ke ʻano asynchronous.
- ʻO ka hiki ke hoʻopili i nā mea hoʻohana callback a me nā kānana e hiki ai iā ʻoe ke hoʻokele i nā ʻano hana like ʻole o ka hoʻoili noi ʻana, a me ka hoʻololi ʻana, hoʻihoʻi hou, poloka a hoʻopaʻa inoa i nā noi a me nā pane.
- Hoʻopili i ka gRPC a me WebSocket.
- Nā mea kaulike haawe hiki ke hoʻopili.
- Hiki ke hoʻololi i ka hoʻonohonoho me ka hoʻomaka ʻole.
- Kākoʻo no ka hoʻonui ʻana i ke code no ka hoʻopau ʻana i nā pilina.
- ʻO ke ala no ka hoʻololi ʻana i ka ukana i ka hihia o ka hāʻule (failover).
- Hoʻohui me nā ʻōnaehana nānā a me nā ʻōnaehana logging (Syslog, Prometheus, Sentry, OpenTelemetry).
- Kākoʻo no ka hoʻopunipuni TLS (hoʻohana i OpenSSL, BoringSSL a i ʻole Rustls).
- ʻO nā pūʻolo Rust i mākaukau no ka hana ʻana i nā proxies HTTP, e hana pū ana me nā protocols network, parsing HTTP headers, accounting and limiting traffic, load balancing, hana pū me ka Ketama distributed hash table, mālama i kahi huna i loko o ka RAM a me ka hana asynchronous o nā manawa.
Ma waena o nā hoʻololi i ka mana hou:
- Kākoʻo mua no ka hale waihona puke cryptography Rustls me ka hoʻohana ʻana i nā mea hoʻolako crypto e pili ana i ka aws-lc-rs a me nā hale waihona puke i hoʻokumu ʻia ma BoringSSL.
- Kākoʻo hoʻokolohua no ka paepae Windows.
- ʻO Dummy TLS mode, hiki ke hoʻohana ʻia i nā kūlana i hiki ʻole ke hoʻohana i kahi hoʻokō TLS maoli.
- Ua hoʻohui ʻia ke kākoʻo no ka module gRPC-web e unuhi i nā noi a ka mea kūʻai aku gRPC-web i nā noi i kikowaena gRPC.
- Hāʻawi i ka hiki ke lawelawe i ka H2C (HTTP/2 ma luna o ka TCP ʻole, ʻaʻohe hoʻopili) a me nā pilina HTTP/1 ma ke awa pūnaewele like.
- Hoʻohui i ka hiki ke hoʻohui i kāu mau hoʻokō ponoʻī o ka hana hoʻohui () e hoʻololi i ke ʻano i ka wā e hoʻokumu ai i kahi pilina pūnaewele, no ka laʻana, e hoʻonohonoho i nā koho hou no ke kumu a i ʻole e hoʻohālikelike i nā hewa i ka wā hoʻāʻo.
- Hāʻawi ʻia ka hiki ke nānā ʻole i nā pane ʻike i ka wā e koho ai, e like me nā pane me ke poʻomanaʻo "Manaʻo: 100-hoʻomau".
- Kākoʻo hoʻohui ʻia no ka wehe ʻana i nā pane i hoʻopili ʻia i ka gzip.
- Hoʻokō ʻia ka moʻohelu kālā o ka mokuʻāina hope no ka nānā ʻana.
- Hoʻohui i ka hiki ke hoʻopaʻa i nā awa kūloko.
Source: opennet.ru
