用 eBPF 当配置文件的 Web 服务器,单核干翻 Nginx"配置文件?我们不搞那一套"
在Web服务器的世界里,Nginx给你location块和rewrite规则,Caddy给你插件系统——而Zeroserve说:配置文件是个伪命题,eBPF程序就是配置。
这个项目的核心设计赌注是:现有Web服务器的配置语言(location块、try_files、map指令)本质上是在"声明式语言里偷偷长出了控制流",然后你还需要在旁边挂一个脚本运行时(Lua、Caddy插件)——行为被割裂在两个层级,开发者得在脑子里同时维护两套逻辑。
Zeroserve的方案:没有配置文件,eBPF程序就是一切。一个沙盒化的eBPF程序看到每个请求,决定路由、认证、限流、代理——全在一个程序里,从头读到尾。
性能:单核超Nginx
据作者测试,Zeroserve在单核上大部分工作负载击败Nginx——包括大小静态文件、脚本中间件、小响应代理,全部走HTTPS。
核心技术栈:
- io_uring贯穿始终——所有网络和磁盘操作
- eBPF用户态沙盒——JIT编译到原生代码,每个请求运行
- TLS 1.3 + HTTP/2 + ECH——现代安全标准开箱即用
- 一个tarball搞定——整个网站打包成一个tar文件,SIGHUP热重载
说实话,Zeroserve目前更适合技术尝鲜和特定场景(API网关、静态站+轻量中间件)。但它的设计理念值得关注:当eBPF从内核态走向用户态,"可编程基础设施"的门槛正在被大幅降低。
一个tar文件 + 一段eBPF代码 = 完整的HTTPS站点。这种极简运维体验,确实让人心动。
> 来源:su3.io/posts/introducing-zeroserve
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.