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

AKS Ingress转发标头问题:真实域名未从Front Door传递

解决Azure Front Door转发至AKS时X-Forwarded-Host标头被替换为私有DNS地址的问题

针对你遇到的真实域名无法通过Azure Front Door正确转发、X-Forwarded-Host被替换为私有DNS地址的问题,可从以下几个关键配置点排查修复:

1. 修正AKS Application Routing Add-on的Ingress注解

Application Routing Add-on默认的Nginx Ingress Controller会自动重写Host头,需添加注解强制保留原始请求的Host信息:

  • 在Ingress资源中添加nginx.ingress.kubernetes.io/preserve-host: "true",阻止Ingress将Host头替换为内部私有域名
  • 检查是否存在nginx.ingress.kubernetes.io/proxy-set-header注解强制设置X-Forwarded-Host为内部值,如有需删除或调整为保留原始值

示例Ingress配置:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: auth-ingress
  annotations:
    nginx.ingress.kubernetes.io/preserve-host: "true"
spec:
  ingressClassName: webapprouting.kubernetes.io
  rules:
  - host: auth.company.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: auth-service
            port:
              number: 8080

2. 调整Azure Front Door的源转发配置

  • 进入Front Door的源设置,将转发主机头选项从默认的源主机头改为自定义主机头,并填入你的真实域名(如auth.company.com)
  • 检查Front Door的路由规则,确认没有规则主动修改X-Forwarded-Host标头导致冲突

3. 确认Ingress的Host绑定配置

确保Ingress资源的spec.rules.host字段设置为真实域名auth.company.com,而非内部私有域名auth-dev.cluster.company.internal。若Ingress绑定内部域名,Nginx会自动将Host头替换为该值,覆盖Front Door传递的原始标头。

4. 排查链路中的标头传递

  • 通过kubectl logs查看Ingress Controller的访问日志,确认请求到达Ingress时的X-Forwarded-Host值,以此定位标头替换发生在Front Door/PLS阶段还是AKS内部Ingress阶段
  • 验证Private Link Service(PLS)和Internal LB无额外的HTTP标头改写逻辑,两者默认不会修改请求标头,重点排查配置是否存在异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:12:15