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

如何在AKS Ingress中路由特定路径到AKS服务、其余到外部Azure Web App

解决AKS NGINX Ingress路由外部Azure Web App的404问题

你的问题核心出在ExternalName服务的主机头传递错误,以及Ingress转发规则未适配Azure Web App的路由逻辑,下面是具体排查和解决步骤:

1. 确认ExternalName服务配置正确性

先确保你的ExternalName服务指向Azure Web App的完整FQDN(比如yourapp.azurewebsites.net),配置示例:

apiVersion: v1
kind: Service
metadata:
  name: external-webapp
spec:
  type: ExternalName
  externalName: yourapp.azurewebsites.net

执行kubectl get service external-webapp,确认ExternalName字段与Web App的域名完全一致。

2. 修正Ingress配置(关键)

Azure Web App依赖请求的Host头识别对应站点,而NGINX Ingress默认转发ExternalName服务时不会传递正确的主机头,这是导致404的主要原因。同时要明确路径匹配规则,确保非/v2路径正确转发。

完整Ingress配置示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: app-ingress
  annotations:
    # 必须:指定上游主机头为Web App的FQDN
    nginx.ingress.kubernetes.io/upstream-vhost: "yourapp.azurewebsites.net"
    # 若Web App需要接收原始路径(如/v1),无需重写可忽略下面注解;如需调整路径可启用:
    # nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  ingressClassName: nginx
  rules:
  - host: your-ingress-domain.com # 替换为你的Ingress域名
    http:
      paths:
      - path: /v2
        pathType: Prefix
        backend:
          service:
            name: internal-v2-service # 你的内部K8s服务名
            port:
              number: 80
      - path: /
        pathType: Prefix
        backend:
          service:
            name: external-webapp # 上述ExternalName服务名
            port:
              number: 80

3. 验证与排查

  • 应用配置:kubectl apply -f your-ingress.yaml
  • 检查NGINX配置,确认主机头已正确设置:
    kubectl exec -it <nginx-ingress-pod-name> -n <ingress-namespace> -- cat /etc/nginx/nginx.conf | grep -A 10 "yourapp.azurewebsites.net"
    
  • 用curl测试(带上Host头):
    curl -H "Host: your-ingress-domain.com" https://your-ingress-ip/
    

额外注意点

  • 若Web App绑定了自定义域名,upstream-vhost注解需使用该自定义域名,而非默认的.azurewebsites.net域名。
  • 若Web App路由需要特定路径前缀,可通过rewrite-target注解调整转发路径,比如将/v1/*重写为/*后转发给Web App。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 13:52:36