能力矩阵
本页是面向部署的协议边界总览。配置参考讲的是语法,本页讲的是运行时实际 终止了什么、转发了什么、以及把什么留给了别的服务。
- 支持 —— 已实现,且被 v0.3.6 的验证套件覆盖。
- 仅限 Linux —— 支持,但依赖 Linux 内核行为、特权,或文件描述符交接。
- 透传 —— Raddex 只转发字节或数据报,不终止上层协议。
- 需要 sidecar —— 该能力所需的协议栈不在 Pingora 0.8.1 或 Raddex 当前运行时 之内。
Raddex 尚未到 1.0。“支持”是当前版本的发布契约,而 Raddexfile 规范始终是配置兼容性的唯一事实来源。
HTTP 与 TLS
Section titled “HTTP 与 TLS”| 能力 | 状态 | 说明 |
|---|---|---|
| HTTP/1.1 反向代理 | 支持 | 明文 HTTP 监听器与 HTTP/1.1 上游 |
| 下游 HTTP/2 | 支持 | TLS 监听器通过 ALPN 通告 h2,可回退到 HTTP/1.1 |
| 上游 TLS | 支持 | https://,可配 SNI、CA 与客户端证书 |
| 上游 HTTP/2 | 支持 | 使用 h2://;上游的 HTTP/2 必须显式声明 |
| 上游 h2c | 支持 | 使用 h2c:// 走明文 prior-knowledge HTTP/2 |
| WebSocket 升级 | 支持 | 由 reverse_proxy 透明转发 |
| 自动 HTTPS | 支持 | 默认 HTTP-01,也支持 Cloudflare DNS-01 与 TLS-ALPN-01 |
| TLS 终止 | 支持 | 站点级证书、internal 证书、版本/加密套件限制与 mTLS |
| 能力 | 状态 | 说明 |
|---|---|---|
| 一个站点块写多个域名 | 支持 | 块体被编译为多个可独立寻址的站点 |
| IPv4 与 IPv6 监听器 | 支持 | HTTP/TLS 监听器使用显式的双栈行为 |
| 精确 host 与 SNI 匹配 | 支持 | 归一化后的域名按监听器匹配 |
| 通配 host 与 SNI 匹配 | 支持 | 仅最左一级标签;精确名优先 |
| 通配匹配裸域 | 不支持 | *.example.com 不匹配 example.com |
| 跨多级标签通配 | 不支持 | *.example.com 不匹配 a.b.example.com |
四层运行在原生 Tokio 数据面上:Raddex 自己绑定套接字、自己 accept、自己终止
TLS、自己做上游选择与健康检查,并用 tokio::io 中继。它转发的任何一个字节都
不经过 Pingora——Pingora 负责承载进程并运行 HTTP 核心。两个核心为什么要拆开,
见架构记录。
| 能力 | 状态 | 说明 |
|---|---|---|
| 裸 TCP 代理 | 支持 | 不解析 HTTP;连接数与超时均有上界 |
| TCP SNI 透传 | 支持 | 检查 ClientHello 后原样转发 |
| TCP TLS 终止 | 支持 | 先终止 TLS,再走裸字节中继 |
| UDP 数据报代理 | 支持 | 每客户端 flow 状态,资源占用有界 |
| UDP IPv6 上游 | 支持 | flow socket 保持地址族一致 |
| 透明 TCP | 仅限 Linux | 需要 TPROXY 规则、策略路由,以及等价于 CAP_NET_ADMIN 的权限 |
| 四层负载均衡 | 支持 | 在健康上游中做 round-robin、random 与一致性哈希 ip_hash |
| 四层主动健康检查 | 支持 | TCP 连接探活,带连续失败/连续成功的抖动抑制 |
| TCP 监听器升级交接 | 仅限 Linux | 显式交接监听描述符;交接失败即升级失败 |
| UDP 无损升级 | 仅限 Linux | 交接监听器、已连接的 flow socket 与有界元数据 |
| QUIC 数据报透传 | 透传 | QUIC 包被当作普通 UDP 数据报处理 |
| QUIC / HTTP/3 终止 | 需要 sidecar | Raddex 不实现 QUIC 握手、HTTP/3 路由或连接迁移 |
| 行为 | 预期 |
|---|---|
raddex check |
与重载使用完全相同的配置校验规则 |
| SIGHUP 重载 | 为新请求替换路由与运行时策略;已有连接保持其已选上游 |
| 监听器拓扑变更 | 重载与升级预检都会拒绝;必要时请正常重启 |
| 透明 TCP 升级 | 标准交接路径不支持;请正常重启 |
| 限流 | 内存内、按进程计数,不是集群级 |
| DNS-01 服务商 | v0.3.6 已实现的是 Cloudflare |
需要终止 HTTP、TLS、TCP 或 UDP 时,直接用 Raddex。当部署需要 HTTP/3 终止、 HTTP/3 路由、连接迁移或 QUIC 感知的负载均衡时,请在 Raddex 前面或旁边放一个专门 的 QUIC/HTTP/3 服务。不要因为 UDP 透传能跑通,就推断这些能力存在。