用 Pingap 部署反向代理,以及从 Pingora 迁移时容易踩的坑
如果你已经看过 Pingora 的最小反向代理示例,很容易产生一个后续问题:生产环境是不是也要自己继续写配置解析、证书加载、日志、热更新和管理界面?通常不需要。Pingap 就是基于 Pingora 做好的反向代理应用,它更接近一个可以直接部署的 Nginx 替代方案。 这篇文章只讲 Pingap:怎么安装,怎么写一个最小反代配置,怎么加 HTTPS,怎么用 Docker 或 systemd 部署,以及从裸 Pingora 或 Nginx 迁移过来时有哪些容易忽略的坑。 本文示例版本核对时间:2026-05-17。示例固定使用 Pingap v0.13.4。实际部署前建议再看一次官方 GitHub Releases 和文档,因为 Pingap 还在快速变化。 Pingap 和 Pingora 的关系 Pingora 是框架,你通过 Rust 代码实现代理逻辑。Pingap 是应用,它把常见反向代理能力包装成 TOML 配置和 Web 管理界面。 一个最小 Pingap 配置大概长这样: [upstreams.app] addrs = ["127.0.0.1:3000"] [locations.app] host = "app.example.com" path = "/" upstream = "app" enable_reverse_proxy_headers = true [servers.http] addr = "0.0.0.0:6188" locations = ["app"] 这段配置和一个最小 Pingora 代理做的是同一件事:监听 6188,把匹配 app.example.com 的请求转发到 127.0.0.1:3000。差别在于,你不用实现 ProxyHttp,也不用自己处理常见代理应用需要的周边能力。 ...