Pingap 是类似于 nginx 的反向代理,基于 pingora 构建,简单而高效,支持文件与 WEB 界面的两种配置形式,10 分钟即可完成 https 站点服务配置。最新版本支持了更多的插件,提供了10多组prometheus性能指标,以及提供了基于opentelemtry的链路跟踪模块。
- 服务支持配置多个Location,通过host与path筛选对应的location,按权重逐一匹配选择
- 支持正则形式配置重写Path,方便应用按前缀区分转发
- HTTP 1/2 的全链路支持,包括h2c的支持
- 基于TOML格式的配置,配置方式非常简洁,可保存至文件或etcd
- 支持10多个Prometheus指标,可以使用pull与push的形式收集相关指标
- Opentelemetry支持w3c context trace与jaeger trace的形式
- 频繁更新的Upstream与Location相关配置调整准实时生效(30秒),其它应用配置更新后,无中断式的优雅重启程序
- 访问日志的模板化配置,已支30多个相关属性的配置,可按需指定输出各种参数与指标
- WEB形式的管理后台界面,无需学习,简单易用
- 开箱即用的
let's encrypt
tls证书,仅需配置对应域名即可 - 不同域名的tls证书可使用在同一服务端口中,按servername自动选择匹配证书
- 支持各种事件的推送:
lets_encrypt
,backend_status
,diff_config
,restart
等等 - 丰富的http插件,如高效的缓存服务组件、多种压缩算法的压缩组件、不同种类的认证组件、不同形式的限流组件等等
- 提供了不同阶段的统计数据,如
upstream_connect_time
,upstream_processing_time
,compression_time
,cache_lookup_time
与cache_lock_time
等
处理流程
源代码基于 Apache-2.0 开源,可查阅源码库:https://github.com/vicanso/pingap