当前位置:首页 > 技术文章 > 正文内容

Pingap 基于 Pingora 的反向代理软件

arlanguage3个月前 (01-31)技术文章34

pingap

Pingap是类似于nginx的反向代理,基于pingora构建,简单而高效。

特性

  • 支持通过host与path筛选对应的location
  • 正则形式重写Path
  • HTTP 1/2的全链路支持
  • 基于TOML格式的配置,可保存至文件或etcd
  • 应用配置更新后,无中断式的优雅更新程序
  • 访问日志的模板化配置
  • WEB形式的管理后台界面
  • 可通过let's encrypt生成tls相关证书,简单易用
  • 支持各种事件的推送:lets_encrypt, backend_unhealthy, diff_config, restart等等
  • 丰富的http转发插件:compression, static serve, limit, stats, mock, 等等

启用程序

/opt/proxy目录中加载所有配置,并以后台程序的形式运行,日志写入至/opt/proxy/pingap.log

RUST_LOG=INFO pingap -c=/opt/proxy -d --log=/opt/proxy/pingap.log

优雅重启

校验配置是否正确后,发送信号给pingap并启动新的程序接收原有的请求。

RUST_LOG=INFO pingap -c=/opt/proxy -t \
  && pkill -SIGQUIT pingap \
  && RUST_LOG=INFO pingap -c=/opt/proxy -d -u --log=/opt/proxy/pingap.log

请求处理流程

性能测试

CPU: M2, Thread: 1

wrk 'http://127.0.0.1:6188/stats' --latency
Running 10s test @ http://127.0.0.1:6188/stats
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    87.92us   60.91us   3.69ms   89.97%
    Req/Sec    57.32k     2.17k   69.69k    91.09%
  Latency Distribution
     50%   93.00us
     75%  100.00us
     90%  106.00us
     99%  133.00us
  1151171 requests in 10.10s, 320.61MB read
Requests/sec: 113977.63
Transfer/sec:     31.74MB

最低支持rust版本

最低支持的rust版本为1.74

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/1563.html

分享给朋友:

“Pingap 基于 Pingora 的反向代理软件” 的相关文章

轻松搭建基于 Serverless 的 ThinkPHP 应用

ThinkPHP 是什么?ThinkPHP 是一个免费开源的,快速、简单的面向对象的轻量级 PHP 开发框架,是为了敏捷 WEB 应用开发和简化企业应用开发而诞生的。ThinkPHP 从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简代码的同时,更注重易用性。遵循 Apache2 开源许可...

面试常问知识点:Nginx设置代理的一个注意点

前几天,重启了下Nginx代理服务,发现报错了,以下是本次的思考。1:先解决问题查看Nginx错误日志:40 SSL_do_handshake() failed (SSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handsha...

Linux 网络延迟排查方法 linux延迟10秒

在 Linux 服务器中,可以通过内核调优、DPDK 以及 XDP 等多种方式提高服务器的抗攻击能力,降低 DDoS 对正常服务的影响。在应用程序中,可以使用各级缓存、WAF、CDN 等来缓解 DDoS 对应用程序的影响。但是需要注意的是,如果 DDoS 流量已经到达 Linux 服务器,那么即使应...

C# 实现高并发 Web 应用的性能优化秘籍

在现代的互联网应用中,尤其是大型 Web 应用,性能和可扩展性成为了核心竞争力。随着用户访问量和数据量的增大,高并发处理成为了系统稳定性和响应速度的关键因素。无论是电商平台、社交网站还是 SaaS 应用,如何应对海量用户的同时访问,确保系统高效运转,已经成为了技术人员面临的重要挑战。C# 和 ASP...

「Nginx」-一定要明白Nginx的七层代理与四层代理

代理是在服务器和客户端之间的一层服务器,代理将客户端的请求转发给服务器,然后将服务端的响应转发给客户端。常用的代理技术分为正向代理、反向代理。Nginx虽然主要是来解决反向代理的,但也能支持正向代理。正向代理:代理服务器替代访问者去访问目标服务器。访问者知道目标服务器,目标服务器只知道代理服务器。需...

从入门到精通,超详细的程序员Java学习路线指南

说明最近也有很多人来向我"请教",他们大都是一些刚入门的新手,还不了解这个行业,也不知道从何学起,开始的时候非常迷茫,实在是每天回复很多人也很麻烦,所以在这里统一作个回复吧。Java学习路线当然,这里我只是说Java学习路线,因为自己就是学Java的,对Java理当很熟悉,对于其它方...