跨请求、连接和会话的代理轮换
在给每个应用请求添加 Connection: close 之前,先弄清轮换代理服务实际轮换的是什么。
经由同一网关的第二个请求完全可能合法地使用同一个公网 IP。先确认该服务按哪种生命周期进行轮换:
| 轮换单位 | 比较什么 |
|---|---|
| 请求 | 下一次应用操作及其观察到的出口 |
| 连接 | 客户端是复用了兼容的连接,还是另开了一条 |
| 服务商会话 | 文档中记录的粘性会话输入及其生命周期 |
Connection: close 并不是通用的网关指令。对于 CONNECT 内部的 HTTPS,网站请求头是在目标 TLS 内部传输的,它不会告诉外层代理该分配哪个公网 IP。HTTP/1.1 中与连接相关的语义同样无法原样带入每一种 HTTP 版本或传输方式。
如果文档中按连接轮换的服务需要一条新连接,就使用客户端支持的生命周期控制,并把反复建立 TCP/TLS 的开销计算在内。如果轮换跟随服务商会话,那么重新连接可能同时保留该会话及其出口。
分别记录请求标识、端点、相关会话键和目标端观察到的来源。关闭连接只证明了那次生命周期事件;请对照服务实际的轮换约定,核实为下一次操作所选的出口。