You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AKS集群Nginx Ingress如何开启HTTP2支持gRPC请求

问题解决方案

无需修改Nginx Ingress控制器的全局配置,仅通过给当前Ingress资源新增注解即可解决,属于无侵入的轻量配置方案。

配置修改说明

你只需要在现有Ingress的metadata.annotations字段中新增1个核心注解即可:

nginx.ingress.kubernetes.io/backend-protocol: "GRPC"

这个注解会直接告知Nginx Ingress后端服务使用gRPC协议,自动启用HTTP2与后端通信,无需手动调整其他HTTP2相关参数,你遇到的Unexpected HTTP/1.x request报错本质就是Ingress默认用HTTP1.1转发请求给后端gRPC服务导致的。

修改后的完整Ingress配置参考:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  namespace: infrastructure--buildfarm
  name: buildfarm-ingress
  annotations:
    kubernetes.io/ingress.class: nginx-internal
    cert-manager.io/cluster-issuer: selfsigned-cluster-issuer
    # 新增核心配置:指定后端为gRPC协议,自动适配HTTP2
    nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
    # 如果你没有特殊路径重写需求,以下两个注解可以直接删除,gRPC不需要重写路径
    # nginx.ingress.kubernetes.io/rewrite-target: /$1
    # nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  rules:
  - host: buildfarm.dev.azr.internal.mydomain.com
    http:
      paths:
      - backend:
          serviceName: aks-buildfarm
          servicePort: 8980
        # 删除正则路径,直接匹配所有路径即可
        path: /

你遗漏的配置点

  • Nginx Ingress默认转发请求时使用HTTP1.1协议,没有显式指定后端为GRPC协议的情况下,不会主动启用HTTP2和后端通信,这是本次报错的核心原因
  • 原有配置中的路径重写规则不适用于gRPC场景,gRPC请求自带标准服务路径标识,重写反而可能导致路径匹配异常,无特殊需求可以直接删除相关配置

验证方法

配置更新完成后,等待10秒左右让Nginx配置同步,再重新执行你的bazel构建命令即可正常发起请求。


内容的提问来源于stack exchange,提问作者M80

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:36:03