去年曾報(bào)道過,Cloudflare 將 Nginx 替換為內(nèi)部采用 Rust 編寫的 Pingora,目標(biāo)是構(gòu)建一個(gè)更快、更高效、更通用的內(nèi)部代理,用作 Cloudflare 當(dāng)前和未來產(chǎn)品的平臺(tái)。不過 Cloudflare 的基礎(chǔ)設(shè)施非常龐大,并且包含許多不同的服務(wù)。
近日,Cloudflare 工程師介紹了如何使用 Rust 重寫基于 C 語言的 Nginx 模塊。Cloudflare 工程師在博客寫道,他們用 Rust 為 Cloudflare 基礎(chǔ)設(shè)施中最古老和最不為人所知的部分 ——cf-html,編寫了替代品。這是一個(gè) Nginx 模塊,位于 Cloudflare 的核心反向 Web 代理內(nèi)部,亦稱為 FL (Front Line)。
FL 運(yùn)行著 Cloudflare 應(yīng)用程序服務(wù)的大部分邏輯,因此這次替換無疑更具挑戰(zhàn)性。Cloudflare 稱,完成這項(xiàng)工作為他們完全擺脫 Nginx 鋪平了道路。未來他們會(huì)繼續(xù)逐步更換用于運(yùn)行 Nginx/OpenResty 代理的組件,或者無需對(duì)自研平臺(tái)投入大量開發(fā)資源就可以完成的組件,從而構(gòu)建一個(gè)沒有 Nginx 的未來 (A future without NGINX)。
Cloudflare 工程師非常熱愛 Rust 語言,他們最后談到了 Rust 帶來的好處:“大多數(shù)人認(rèn)為編程語言的安全性主要是用于預(yù)防出現(xiàn) bug,但對(duì)于一家公司來說,我們發(fā)現(xiàn)編程語言的安全優(yōu)勢(shì)還可以用來完成一些被認(rèn)為非常困難、或不可能安全實(shí)現(xiàn)的功能需求。比如提供類似 Wireshark 的過濾語言來編寫防火墻規(guī)則、允許數(shù)百萬用戶編寫任意 JavaScript 代碼并直接在我們的平臺(tái)上運(yùn)行它,以及即時(shí)重寫 HTML 響應(yīng)。在實(shí)現(xiàn)上述功能過程中,Rust 為這些服務(wù)提供了嚴(yán)格的執(zhí)行邊界,讓不可能變成可能。與此同時(shí),Rust 讓過去困擾行業(yè)的內(nèi)存安全問題日益成為過去。”
審核編輯 :李倩
-
模塊
+關(guān)注
關(guān)注
7文章
2735瀏覽量
47751 -
Rust
+關(guān)注
關(guān)注
1文章
230瀏覽量
6665
原文標(biāo)題:Cloudflare用Rust重寫Nginx C模塊,構(gòu)建沒有Nginx的未來
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
華為 FlexusX 與 Docker+Nginx 的高效整合之路
![華為 FlexusX 與 Docker+<b class='flag-5'>Nginx</b> 的高效整合之路](https://file1.elecfans.com//web3/M00/04/7A/wKgZPGd0HLGANzOxAAEA43MSbXE681.png)
EulerOS+Nginx+MySQL 部署 GLPI 資產(chǎn)管理系統(tǒng)
![EulerOS+<b class='flag-5'>Nginx</b>+MySQL 部署 GLPI 資產(chǎn)管理系統(tǒng)](https://file1.elecfans.com//web3/M00/04/A1/wKgZPGd2mOqAAiIfAAIStNukK3Q423.png)
玩轉(zhuǎn)Nginx日志管理:高效排查問題的終極指南
nginx+lua+redis實(shí)現(xiàn)灰度發(fā)布
Nginx代理轉(zhuǎn)發(fā)實(shí)戰(zhàn):零基礎(chǔ)掌握服務(wù)器流量分發(fā)技巧
Nginx日常運(yùn)維方法Linux版
![<b class='flag-5'>Nginx</b>日常運(yùn)維方法Linux版](https://file1.elecfans.com/web3/M00/01/58/wKgZPGdSuH6AH9RbAAAH_h5YhJg011.png)
「服務(wù)器」Nginx Proxy Manager申請(qǐng)cloudflare泛域名
![「服務(wù)器」<b class='flag-5'>Nginx</b> Proxy Manager申請(qǐng)<b class='flag-5'>cloudflare</b>泛域名](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
詳解nginx中的正則表達(dá)式
![詳解<b class='flag-5'>nginx</b>中的正則表達(dá)式](https://file1.elecfans.com/web3/M00/00/D4/wKgZO2dOZpuAcWm-AAAh1LlPcxs614.png)
確保網(wǎng)站無縫運(yùn)行:Keepalived高可用與Nginx集成實(shí)戰(zhàn)
![確保網(wǎng)站無縫運(yùn)行:Keepalived高可用與<b class='flag-5'>Nginx</b>集成實(shí)戰(zhàn)](https://file1.elecfans.com/web3/M00/00/12/wKgZO2dGcZOAFKfHAABeakMUbaM263.png)
nginx隱藏版本號(hào)與WEB服務(wù)器信息
![<b class='flag-5'>nginx</b>隱藏版本號(hào)與WEB服務(wù)器信息](https://file1.elecfans.com/web2/M00/0C/2B/wKgZomc_7AmASNNGAAAhmLrsbJU982.png)
nginx負(fù)載均衡配置介紹
![<b class='flag-5'>nginx</b>負(fù)載均衡配置介紹](https://file1.elecfans.com/web1/M00/F4/AF/wKgZoWcwR1KAFNnbAAAYwR5LGfU815.png)
nginx中的正則表達(dá)式和location路徑匹配指南
![<b class='flag-5'>nginx</b>中的正則表達(dá)式和location路徑匹配指南](https://file1.elecfans.com/web2/M00/08/9C/wKgZomb5Cb2AbMf0AACDRywOs8w869.png)
評(píng)論