0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Linux爱好者 来源:OSC开源社区 2023-03-08 09:36 次阅读

去年曾报道过,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)。

61efee98-bd34-11ed-bfe3-dac502259ad0.png

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

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2672

    浏览量

    47347
  • Rust
    +关注

    关注

    1

    文章

    228

    浏览量

    6574

原文标题:Cloudflare用Rust重写Nginx C模块,构建没有Nginx的未来

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    确保网站无缝运行:Keepalived高可用与Nginx集成实战

    目录 keepalived高可用(nginx) keepalived简介 keepalived的重要功能 keepalived高可用架构图 keepalived工作原理描述 keepalived实现
    的头像 发表于 11-27 09:08 44次阅读
    确保网站无缝运行:Keepalived高可用与<b class='flag-5'>Nginx</b>集成实战

    nginx隐藏版本号与WEB服务器信息

    .org/download/nginx-1.14.1.tar.gz 2 解压 tar -xf nginx-1.14.1.tar.gzcd nginx-1.14.1 3 修改C文件 (1
    的头像 发表于 11-22 10:25 98次阅读
    <b class='flag-5'>nginx</b>隐藏版本号与WEB服务器信息

    nginx负载均衡配置介绍

    目录 nginx负载均衡 nginx负载均衡介绍 反向代理与负载均衡 nginx负载均衡配置 Keepalived高可用nginx负载均衡器 修改Web服务器的默认主页 开启
    的头像 发表于 11-10 13:39 187次阅读
    <b class='flag-5'>nginx</b>负载均衡配置介绍

    nginx中的正则表达式和location路径匹配指南

    前言,我这里验证的nginx-v1.23.2单机环境下的nginx中的正则表达式、location路径匹配规则和优先级。
    的头像 发表于 09-29 16:02 483次阅读
    <b class='flag-5'>nginx</b>中的正则表达式和location路径匹配指南

    Jtti:美国VPS开启nginx状态监控,查看web服务器的并发连接数

    :“--with-http_stub_status_module”,该模块在需要放到server里面的。 1、修改nginx.conf的文件例如: server { listen 80;server_name
    的头像 发表于 08-26 15:42 229次阅读

    nginx重启命令linux步骤是什么?

      nginx.conf test is successful   说明配置文件正确!   方法二:在启动命令-c前加-t   2、重启Nginx服务   方法一:进入nginx可执
    发表于 07-11 17:13

    nginx重启命令linux步骤是什么?

      nginx.conf test is successful   说明配置文件正确!   方法二:在启动命令-c前加-t   2、重启Nginx服务   方法一:进入nginx可执
    发表于 07-10 16:40

    [鸿蒙]OpenHarmony4.0的Rust开发

    中集成 Rust 代码,并最大程度发挥 Rust 和 OpenHarmony 中原有 C/C++ 代码的交互性,采用 GN 作为统一构建
    的头像 发表于 02-26 17:28 809次阅读
    [鸿蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>开发

    核心开发者因安全策略分歧离队,Nginx分叉出freenginx项目

    值得注意的是,Nginx是一款由俄罗斯人伊戈尔•赛索耶夫(Igor Sysoev)创作,并于2004年起向公众公开的异步网页服务器平台,广泛用于反向代理、负载均衡和HTTP缓存等功能。据官方公布的2021年6月数据,Nginx已经超越Apache成为全球最受欢迎的网页服务
    的头像 发表于 02-19 15:51 390次阅读

    一次Rust重写基础软件的实践

    受到2022年“谷歌使用Rust重写Android系统且所有Rust代码的内存安全漏洞为零” [1] 的启发,最近笔者怀着浓厚的兴趣也顺应Rust 的潮流,尝试着将一款
    的头像 发表于 01-25 11:21 597次阅读

    Apache服务器和Nginx服务器

    Apache和Nginx都是常见的开源Web服务器软件,它们用于处理HTTP请求并提供网站和应用程序的服务。下面是对Apache和Nginx的一些基本特点的比较: 一、Apache HTTP
    的头像 发表于 01-22 16:48 524次阅读

    【爱芯派 Pro 开发板试用体验】实现简单视频直播系统

    ,以及运行在PC上的VLC。他们三者的作用分别是,nginx(借助http-flv模块)实现视频流转发功能,ffmpeg实现视频流推送功能,PC上的VLC播放器实现视频流拉取和播放功能。 一、准备工作
    发表于 01-21 16:36

    Nginx在Windows/docker中的使用

    nginx 是一个高性能的开源反向代理服务器和 web 服务器,一般用来搭建静态资源服务器、负载均衡器、反向代理,本文将分享其在 Windows/docker 中的使用,使用 nssm 部署成服务的方案脚本,局域网中自定义域名解决https提示不安全的解决方案,以及一路踩过的坑。
    的头像 发表于 01-03 10:20 1759次阅读
    <b class='flag-5'>Nginx</b>在Windows/docker中的使用

    如何通过Nginx实现禁止国外IP访问网站

    最近不少小伙伴反馈自己维护的项目中,经常在后台可以看到来自国外IP的攻击,令人头疼。今天浩道跟大家分享如何通过Nginx来实现禁止国外IP访问网站,确保你网站免遭国外IP攻击了!
    的头像 发表于 12-01 11:12 1377次阅读
    如何通过<b class='flag-5'>Nginx</b>实现禁止国外IP访问网站

    Nginx的配置文件如何设置头信息保留真实IP不丢失

    Nginx 配置中设置头信息以保留客户端的真实 IP 地址通常是在使用反向代理的场景中需要的。当 Nginx 作为反向代理时,客户端的真实 IP 地址可能会在转发请求时丢失,因为到达应用服务器
    的头像 发表于 11-30 10:54 1890次阅读