Toxiproxy 可以放在 HTTP 代理前面
让 SDK 的 HTTP 代理连接经由 Toxiproxy,转发到理解 CONNECT 的现有正向代理。
Toxiproxy 会把 TCP 流转发到配置好的上游,也能对该流注入故障。但它的 HTTP 控制 API 并不会因此把流量监听端口变成一个 HTTP 正向代理。
对于已经配置使用 HTTP 代理的 SDK,可以让一个现有的正向代理位于它后面:
SDK → Toxiproxy 127.0.0.1:7890 → HTTP proxy 127.0.0.1:8888 → S3:443
把 Toxiproxy 的监听端口设为 7890,上游设为 127.0.0.1:8888。再把 SDK 的 HTTP 代理设置指向 http://127.0.0.1:7890。监听端口会转发 SDK 发出的 CONNECT 请求;由 HTTP 代理解析 CONNECT 并打开到目标地址的隧道。
这些回环地址的前提是三个本地组件共享同一个网络命名空间。容器内的组件则需要从各自命名空间可达的地址。
这一布置改变的是客户端到正向代理之间的路径,并不替代目标端的 TLS 或服务认证。评估注入的故障时,要把 SDK 的重试单独计算:已经恢复的操作可能掩盖先前失败的那次尝试。