zeroserve 的 Caddy 兼容模式:吞吐量提升 3 倍,延迟降低 70%

Hacker News Top 工具

摘要

zeroserve 现已支持 Caddy 兼容模式,通过将 Caddyfile 进行即时编译 (JIT) 为 eBPF 和原生机器码,实现了 3 倍吞吐量和 70% 延迟降低。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/06/15 00:57

# zeroserve 的 Caddy 兼容性:吞吐量提升 3 倍,延迟降低 70% 来源:https://su3.io/posts/zeroserve-caddy-compat zeroserve (https://github.com/losfair/zeroserve) 是一个高性能的 HTTPS 服务器,它在用户空间运行 eBPF 脚本(介绍 (https://su3.io/posts/introducing-zeroserve))。现在它有了 Caddy 兼容模式——当提供一个 Caddyfile 时,zeroserve 会将其即时编译为 eBPF,然后再编译为原生 x86_64/ARM64 机器码,并在一个 `io_uring` 事件循环中运行。 | 协议 | 服务器 | 吞吐量 | p50 | p99 | 峰值 RSS | |------|--------|--------|-----|-----|----------| | https | zeroserve-clang | 38,948 req/s | 1.45ms | 3.91ms | 30.9 MiB | | https | zeroserve-tcc | 36,653 req/s | 1.67ms | 4.00ms | 34.2 MiB | | https | caddy | 12,529 req/s | 4.74ms | 13.11ms | 67.4 MiB | | https | nginx | 37,424 req/s | 1.57ms | 4.24ms | 25.7 MiB | *HTTPS 反向代理,2 线程,AMD Ryzen 7 3700X。* **查看 CI (https://github.com/losfair/zeroserve/actions/runs/27498328347/job/81276438772) 获取原始运行结果。** 在你的 Caddyfile 上试试: ``` curl -fL -o zeroserve https://github.com/losfair/zeroserve/releases/download/v0.2.11/zeroserve-$(uname -m)-linux chmod +x zeroserve ./zeroserve --caddy /etc/caddy/Caddyfile curl http://127.0.0.1:8080 ``` zeroserve 运行图灵完备的 eBPF,你可以从 Caddyfile 中调用自定义代码。例如,要将某个路径反向代理到带有 AWS SigV4 认证的 S3 兼容存储桶,请获取 io.su3.aws-sigv4.c (https://github.com/losfair/zeroserve/blob/main/plugins/io.su3.aws-sigv4.c) 文件并执行: ``` # zeroserve --plugin io.su3.aws-sigv4.c --caddy Caddyfile example.com { route /s3/* { uri strip_prefix /s3 rewrite * /my-bucket{uri} # 调用 eBPF 中间件 `io.su3.aws-sigv4.o` 中的 `sign_request` 方法 zeroserve_call io.su3.aws-sigv4 sign_request { access_key_id "minioadmin" secret_access_key "minioadmin" } reverse_proxy http://127.0.0.1:9000 } } ``` © 2022-2026 Heyang Zhou · RSS (https://su3.io/api/feed)

相似文章

Zig 构建速度正在提升

Mitchell Hashimoto

Zig 0.15 相比 0.14 在编译时性能有显著提升,构建脚本编译时间从约 7 秒降至约 1.7 秒,完整构建时间从 41 秒降至 32 秒,且仍使用 LLVM。本文重点介绍了自托管后端和增量编译方面的进展。

在树莓派 Zero 上完全运行于 RAM 中提供网站服务

Lobsters Hottest

本教程介绍如何在树莓派 Zero v1.3 上使用 Alpine Linux 搭建无磁盘网站,系统完全启动至其 512MB RAM 中。详细说明了所需硬件、操作系统配置、轻量级 Web 服务器以及将 TLS 终止卸载到外部 VPS 的方法。

Bcachefs 1.38.6 - 性能发布版

Lobsters Hottest

Bcachefs 1.38.6 作为性能发布版,移除了实验性标签,引入了纠删码和数据调和以改善数据管理,并将用户空间代码转换为 Rust。