10

Cloudflare用Rust重写Nginx C模块,构建没有Nginx的未来

 1 year ago
source link: https://www.techug.com/post/cloudflare-rewrites-nginx-c-module-with-rust-to-build-a-future-without-nginxbda4b72877a8d37143cd/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

出品 | OSC开源社区(ID:oschina2013)

去年曾报道过,Cloudflare 将 Nginx 替换为内部采用 Rust 编写的 Pingora,目标是构建一个更快、更高效、更通用的内部代理,用作 Cloudflare 当前和未来产品的平台。不过 Cloudflare 的基础设施非常庞大,并且包含许多不同的服务。

近日,Cloudflare 工程师介绍了如何使用 Rust 重写基于 C 语言的 Nginx 模块。Cloudflare 工程师在博客写道,他们用 Rust 为 Cloudflare 基础设施中最古老和最不为人所知的部分 ——cf-html,编写了替代品。这是一个 Nginx 模块,位于 Cloudflare 的核心反向 Web 代理内部,亦称为 FL (Front Line)。

FL 运行着 Cloudflare 应用程序服务的大部分逻辑,因此这次替换无疑更具挑战性。Cloudflare 称,完成这项工作为他们完全摆脱 Nginx 铺平了道路。未来他们会继续逐步更换用于运行 Nginx/OpenResty 代理的组件,或者无需对自研平台投入大量开发资源就可以完成的组件,从而构建一个没有 Nginx 的未来 (A future without NGINX)。

img16776318922025380581.png

Cloudflare 工程师非常热爱 Rust 语言,他们最后谈到了 Rust 带来的好处:“大多数人认为编程语言的安全性主要是用于预防出现 bug,但对于一家公司来说,我们发现编程语言的安全优势还可以用来完成一些被认为非常困难、或不可能安全实现的功能需求。比如提供类似 Wireshark 的过滤语言来编写防火墙规则、允许数百万用户编写任意 JavaScript 代码并直接在我们的平台上运行它,以及即时重写 HTML 响应。在实现上述功能过程中,Rust 为这些服务提供了严格的执行边界,让不可能变成可能。与此同时,Rust 让过去困扰行业的内存安全问题日益成为过去。”

本文文字及图片出自 OSC开源社区


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK