据我了解,您有以下要求
1) 带代理 LB 的静态外部 IP
2) 需要抓取 HTTP(S) 和 RTMP 请求。
3) 代理附加到外部域,例如 example.com
4)后端应该是托管实例组
根据要求并考虑GCP 负载平衡选项:
1) HTTP(S) 负载均衡器不是一个选项,因为它不适用于 RTMP
2) SSL Proxy LB不是一个选项,因为它不支持端口 80(用户提到 HTTP)
3) TCP Proxy LB不是一个选项,因为它不支持端口 80,因此不支持 HTTP。
4)网络 TCP/UDP LB似乎是这种情况下的可能选项,因为它支持负载平衡的任何外部端口,但问题是它没有代理功能,它只是通过 LB。
GCP LB 支持的端口摘要可以在此链接中找到
不同 GCP LB 的支持外部端口和云负载均衡器摘要。
Google Cloud Platform 不提供代理类型的负载平衡器,该负载平衡器将同时处理端口 80 上的 HTTP 和另一个普通的旧 TCP 协议。
考虑到所有信息,此方案的最佳选择是构建您自己的代理虚拟机并将它们添加到网络负载均衡器后面的目标池中。这样,网络负载均衡器的 IP 将被公开(对 example.com 的请求转换为网络负载均衡器的 IP),并且代理功能将由作为该网络负载均衡器目标池的 VM 池提供。Network LB 后面有多个代理 VM 的原因是为了消除单点故障和冗余。
网络负载均衡 <----> 代理虚拟机 <--> 后端虚拟机
或者,如果您需要托管实例组和自动缩放,那么
网络 LB <--> 代理虚拟机 <-->内部 LB <--> 托管实例组
在此设置中,代理 VM 和 ILB 需要位于同一区域中,因为 ILB 是区域性的。
此外,如果您需要一些关于如何配置代理 VM 的指导,GCP 文档“将实例配置为网络代理”可能会提供一些很好的指导。
值得一提的是,Stack Overflow 一般面向开发人员,Server Fault面向系统和网络管理员。