Cloud Load Balancer连接上游服务器是否支持QUIC/HTTP3协议
答案
结论:完全可以实现,不需要你的aioquic服务支持HTTP/1.1或HTTP/2升级逻辑。
《Introducing QUIC support for HTTPS load balancing》中说明的客户端<->负载均衡段QUIC能力,和负载均衡<->上游后端段的协议配置是相互独立的,你可以单独指定Cloud Load Balancer(以下简称CLB)和后端服务的通信协议,具体配置要点如下:
- 必须选用七层全球外部HTTPS负载均衡,不要使用四层TCP代理、网络负载均衡,只有七层应用负载均衡支持后端HTTP/3协议配置。
- 配置后端服务参数时,直接将「后端协议」选项设置为
HTTP/3,不要使用默认的HTTP/1.1、HTTP/2选项,也不要开启协议自动协商。该配置下CLB和后端建连时会直接主动发起QUIC握手建立HTTP/3连接,全程不会走Alt-Svc引导、h2c升级这类流程,完全匹配你的aioquic服务只接受主动发起的HTTP/3连接的要求。 - GKE侧需要做对应配套配置:
- 为aioquic工作负载配置Service时,同时暴露服务监听的UDP端口,HTTP/3底层基于UDP传输,仅暴露TCP端口会直接导致连接失败
- 配置HTTP/3类型的健康检查,指定和服务匹配的检查路径,不要使用HTTP/1.1/HTTP/2类型的健康检查,避免后端节点被误判定为不可用
- 配置VPC防火墙规则,放通CLB代理地址段、健康检查地址段到GKE节点对应UDP端口的入站流量
- 客户端到CLB段的QUIC/HTTP3支持可以按需开关,该配置不影响CLB到后端的通信逻辑:哪怕客户端用HTTP/1.1/HTTP/2访问CLB,CLB也会通过和后端预建立的HTTP/3连接转发请求,不会向后端发送任何协议升级请求。
如果你使用区域级外部HTTPS负载均衡,需要提前确认部署区域已开放后端HTTP/3支持,目前GCP所有主流区域均已上线该能力。
内容的提问来源于stack exchange,提问作者Mario Ishac
相关产品推荐
相关产品推荐

