#负载均衡 #代理服务器 #客户端-服务器 #mTLS #HTTP/2 #后端服务器 #QUIC

app octoproxy

支持QUIC和HTTP/2的mTLS加密的负载均衡代理

1个不稳定版本

0.1.1 2023年6月5日
0.1.0 2023年6月5日

#3#mtls

MIT 许可证

150KB
3K SLoC

CI MIT

Octoproxy - 支持QUIC和HTTP/2的mTLS加密的负载均衡代理

这是一个正在进行中的项目,目前处于开发阶段,可能存在未知问题和潜在错误。请在自己的风险下使用。

关于

Octoproxy 是一个受章鱼多臂能力的启发的负载均衡代理。就像章鱼用它的多条臂一样,Octoproxy有效地管理传入的客户端请求并将它们分配到多个后端服务器。凭借其灵活的触手,Octoproxy可以动态地适应不断变化的网络条件,并智能地路由流量以确保最佳性能和高度可用性。类似于章鱼如何利用其敏锐的感觉在海洋中导航,Octoproxy利用负载均衡算法和协议来监控服务器健康,检测故障,并无缝地重定向流量以实现顺畅可靠的经验。进入Octoproxy的世界,体验其高效智能的负载均衡能力。

概述

  • client: octoproxy-client 是在客户端实现的负载均衡代理。
  • e2e: e2e 为简单测试提供客户端和服务器。
  • easycert: octoproxy-easycert 是一个方便的mTLS证书生成工具。
  • lib: octoproxy-lib 提供基础通用代码。
  • server: octoproxy-server 在服务器端处理客户端请求。
  • tui: octui 是一个基于终端的UI,用于管理和监控客户端。

快速入门

从源代码构建

使用 mimalloc 构建客户端/服务器

cargo build --release -F alloc --bin octoproxy-server
cargo build --release -F alloc --bin octoproxy-client

构建 octuioctoproxy-easycert

cargo build --release --bin octoproxy-easycert
cargo build --release --bin octui

用法

从客户端

octoproxy-client -c config.toml

从服务器端

octoproxy-server -c config.toml

使用 octoproxy-easycert 通过现有的CA证书生成客户端/服务器证书

octoproxy-easycert --cacert ./ca.crt --cakey ./ca.key --common-name <common name> --san "DNS:<domain name>" --san "IP:<ip adddress>" -o . --days 365 <client/server cert name>

请确保您提供了有效的适当参数值,包括至少一个必需的Subject Alternative Name (SAN) 值,如 --san 选项所要求的。

示例:为本地服务器生成证书

octoproxy-easycert --cacert ./ca.crt --cakey ./ca.key --common-name server_name --san "DNS:localhost" --san "IP:127.0.0.1" -o . --days 3650 server

灵感

许可证

本项目采用MIT许可证。有关详细信息,请参阅LICENSE文件。

依赖项

~34–68MB
~1M SLoC