首页 文章 精选 留言 我的

精选列表

搜索[数学软件],共10000篇文章
优秀的个人博客,低调大师

Pingap v0.4.0 - 基于 Pingora 的反向代理软件

pingap Pingap是类似于nginx的反向代理,基于pingora构建,简单而高效。最新版本0.4.0已更新,基础框架部分已基本完成,后续各功能通过插件体系增强。 更多信息可在https://github.com/vicanso/pingap上查看。 特性 支持通过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, 等等 性能测试 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 开源协议 This project is Licensed under Apache License, Version 2.0.

优秀的个人博客,低调大师

Pingap v0.2.0,基于 Pingora 的反向代理软件

Pingap是基于pingora开发的,基于Apache-2.0 license协议开源,源代码可查阅https://github.com/vicanso/pingap。pingora提供了各类模块便于rust开发者使用,但并不方便非rust开发者使用,因此pingap提供了以toml的形式配置简单易用的反向代理,实现支持多location代理转发,通过插件的形式支持更多的需求场景。特性如下: 支持多location配置,可通过请求的路径与域名筛选 支持HTTP1与HTTP2两种协议 无中断请求的配置更新,方便实时更新应用配置 模板式的请求日志输出,可按模板指定各种输出 提供Web界面式的配置,简化操作 支持各种插件形式,根据需要灵活配置各种特性:如静态文件目录、服务性能指标、WEB后台配置应用等 Location的处理逻辑 该Server下的所有location在初始化时根据权重按高至低排序,接受到请求时按顺序一个个匹配到符合的location为止,若无符合的则返回出错。在选择对应的location之后,判断是否有配置重写pathh(若无则不需要),添加请求头(若无则不需要),成功响应时添加响应头(若无则不需要)。 let header = session.req_header_mut(); let path = header.uri.path(); let host = header.uri.host().unwrap_or_default(); let (location_index, lo) = self .locations .iter() .enumerate() .find(|(_, item)| item.matched(host, path)) .ok_or_else(|| pingora::Error::new_str(LOCATION_NOT_FOUND))?; if let Some(mut new_path) = lo.rewrite(path) { if let Some(query) = header.uri.query() { new_path = format!("{new_path}?{query}"); } // TODO parse error let _ = new_path.parse::().map(|uri| header.set_uri(uri)); } Location主要配置请求的匹配、请求头响应头的插入,以及各种插件的关联,是整个流程中的最重要组成部分。下面是相关参数的详细说明: upstream: 配置该location对应的upstream,若该location所有的处理均由插件完成,则可不配置 host: 匹配的域名,如果是多个域名则使用,分隔 path: 匹配的路径,具体使用后续细说 proxy_headers: 转发至upstream时添加的请求头 headers: 响应至downstream时添加的响应头 rewrite: 请求路径的重写规则 proxy_plugins: 添加至该location的插件列表,按顺序执行 Location支持配置对应host(支持多个)与path规则,path支持以下的规则,权重由高至低: 全等模式,配置以=开始,如=/api表示匹配path等于/api的请求 正则模式,配置以~开始,如~^/(api|rest)表示匹配path以/api或/rest开始请求 前缀模式,如/api表示匹配path为/api开始的请求 空模式,若未指定path则表示所有的path均匹配,一般建议配置一个/的前缀模式即可,无需使用空模式 插件体系 Pingap中通过Locaton添加各种插件支持更多的应用场景,如鉴权、流控等。现在插件支持在request_filter与proxy_upstream_filter阶段执行,均为转发到上游节点前的处理。下面介绍一下proxy plunin的具体逻辑,trait如下: #[async_trait] pub trait ProxyPlugin: Sync + Send { fn category(&self) -> ProxyPluginCategory; fn step(&self) -> ProxyPluginStep; async fn handle(&self, _session: &mut Session, _ctx: &mut State) -> pingora::Result { Ok(false) } } 主要分三个实现: category: 插件类型,用于区分该插件是哪类形式的插件 step: 插件的执行阶段,现只支持在request_filter与proxy_upstream_filter阶段执行 handle: 插件的执行逻辑,若返回的是Ok(true),则表示请求已处理完成,不再转发到上游节点 Upstream的处理逻辑 Upstream的逻辑比较简单,在匹配location后,根据该location配置的upstream节点列表,按算法选择可用节点,并将请求转发至该节点即可。虽然注意,插件也可配置在proxy_upstream_filter转发至upstream之前执行,可按需配置对应的插件。 Upstream配置为节点地址列表,配置为域名则会根据解析后的IP添加所有节点地址(之后并不会再次刷新域名解析),需要注意节点会使用默认的tcp health check的形式检测节点是否可用,建议配置为http health chech。下面针对相关参数详细说明: addrs: 节点地址列表,地址为ip:port weight的形式,weight权重可不指定,默认为1 algo: 节点的选择算法,支持hash与round_robin两种形式,如hash:ip表示按ip hash选择节点。默认为round_robin sni: 若配置的是https,需要设置对应的SNI verify_cert: 若配置的是http,是否需要校验证书有效性 health_check: 节点健康检测配置,支持http与tcp形式 ipv4_only: 若配置为域名时,是否仅添加解析的ipv4节点 alpn: 在tls握手时,alpn的配置,默认为H1 connection_timeout: tcp连接超时,默认为无 total_connection_timeout: 连接超时,对于https包括tls握手部分,默认为无 read_timeout: 读取超时,默认为无 write_timeout: 写超时,默认为无 idle_timeout: 空闲超时,指定连接空闲多久后会自动回收,如果设置为0,则连接不复用,需要注意有些网络设备对于无数据的tcp连接会过期自动关闭,因此可根据需要设置对应的值。默认为无 WEB管理后台

优秀的个人博客,低调大师

FastCopy 5.4.3 发布,Windows 上最快的复制/备份软件

FastCopy 5.4.3 现已发布。这是一款 Windows 平台的免费文件复制工具,特点是速度快、不占用资源,尤其是在复制海量文件的场景下比 Windows 默认的文件复制功能快许多倍。如果有复制大量文件或备份文件的场景,这是一款非常实用的工具。 此版本的新增内容: 在文件菜单中添加了“Launch New FastCopy”项 修复了 move mode 中的一个罕见异常(启用 ACL/AltStream 时) 修复了 Win11 的 shell 扩展设置的罕见异常 v5 主要特点 新增 Perfect Verify。(仅 Pro 版) 支持 Win11 的 shell 扩展。 异步 I/O 算法的演变,以获得更高的速度。 由于特权时预先分配空间,在高速 SSD 环境下速度提高 20%-30%。 在主要命令中增加了"Verify"、"FC Verify Info Disp "和 "FC Verify Info Check(仅限 Pro 版)"。 支持 CPU affinity。 增加了总是并行运行的驱动器设置(如 SSD-RAID)。 下载地址:https://fastcopy.jp/

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册