1个不稳定版本
0.1.1 | 2023年6月5日 |
---|---|
0.1.0 |
|
#3 在 #mtls
150KB
3K SLoC
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
构建 octui
和 octoproxy-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