主题
用户指南
Pingora 是一个基于 Rust 构建的高性能代理框架,由 Cloudflare 开发并开源。
它被用于替代 Nginx,在高并发场景下展现出更好的性能与资源效率。
什么是 Pingora
Pingora 是一个 网络代理框架(proxy framework),它并不是单一应用程序,而是可被用来构建自定义代理、负载均衡器或服务网关的 框架。
通过模块化设计和异步运行模型,你可以在 Pingora 基础上构建:
- 反向代理(Reverse Proxy)
- 正向代理(Forward Proxy)
- 负载均衡(Load Balancer)
- 服务网关(Service Gateway)
- 内部流量路由与过滤器系统
Pingora 的特点
特性 | 描述 |
---|---|
🚀 高性能 | 基于 Rust 异步模型,比 Nginx 更快的连接复用与内存安全 |
🔐 内存安全 | Rust 的所有权系统杜绝内存泄漏与数据竞争 |
⚙️ 模块化 | 按阶段拆分请求生命周期,可自定义过滤器与中间层 |
📊 可观测性 | 内置 Tracing 与 Prometheus 支持 |
🧠 灵活扩展 | 提供 CTX 上下文共享机制,可在多个阶段共享状态 |
基础组件
Pingora 的主要组成部分包括:
- pingora-core:核心运行库,提供事件循环、IO、多线程调度;
- pingora-proxy:构建 HTTP 代理的核心模块;
- pingora-limiter:提供限流与速率控制;
- pingora-runtime:异步运行时层,管理线程与任务;
- pingora-openssl / pingora-boringssl:SSL/TLS 支持;
- pingora-tools:辅助开发与调试工具。
快速上手流程
安装 Rust 环境
bashcurl https://sh.rustup.rs -sSf | sh
创建 Pingora 项目
bashcargo new pingora-demo cd pingora-demo cargo add pingora-proxy
编写最小代理示例
rustuse pingora::prelude::*; #[tokio::main] async fn main() { let mut server = Server::new(None).unwrap(); server.bootstrap(); let app = http_proxy_service(None); server.run_forever(app).unwrap(); }
运行项目
bashcargo run
打开浏览器访问
http://127.0.0.1:8080
,即可看到代理服务启动成功。
下一步
接下来,我们将学习如何 运行 Pingora 服务器、实现 优雅重启、配置管理 等关键功能。 👉 继续阅读:运行 Pingora 服务器