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)

相似文章

Show HN:ZeroFS – 一个用于S3的日志结构文件系统

Hacker News Top

ZeroFS是一个日志结构文件系统,可将兼容S3的存储桶作为POSIX文件系统通过NFS和9P提供,或作为原始块设备,并具备压缩、加密和本地缓存以加快读取速度。它通过了广泛的POSIX和压力测试套件,包括内核构建和Jepsen故障转移测试。

Zig 构建速度正在提升

Mitchell Hashimoto

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

Go中的零拷贝: sendfile、splice 以及 io.Copy 的成本

Hacker News Top

本文解释了Go的io.Copy如何自动使用sendfile和splice进行TCP上的零拷贝文件传输,并展示了将文件包装成普通的io.Reader(例如用于日志记录)会悄然禁用此优化,导致性能显著下降。基准测试和strace输出说明了这种影响。

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

Lobsters Hottest

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