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

配置Kubernetes Nginx Ingress非通配符域名时返回404问题求助

问题根因

你的Ingress配置存在YAML语法结构错误,host和http路由规则被错误拆分为两个独立的rule条目:
原错误配置片段:

rules:
  # 第一条规则:仅匹配host为tradephlo.local的请求,但没有配置任何路径路由规则
  - host: "tradephlo.local"
  # 第二条规则:没有指定host,匹配所有未命中其他host规则的请求,配置了路径路由
  - http:
      paths:
        ...

当你访问tradephlo.local时,请求会命中第一条没有路由规则的空规则,自然返回404。

为什么改通配符后正常

你将host改为*.tradephlo.local时,tradephlo.local作为根域名无法命中通配符规则,请求会落到第二条带路由的无host规则上,所以访问正常。但这是巧合,不是正确配置。

修复方案

将host和http配置归到同一个rule条目下即可,修改后的rules段如下:

rules:
  - host: "tradephlo.local"
    # 注意这里http前面没有减号,和host属于同一个规则项
    http:
      paths:
        - path: /api/main/?(.*)
          pathType: Prefix
          backend:
            service:
              name: tradephlo-main-srv
              port:
                number: 4000
        - path: /api/integration/?(.*)
          pathType: Prefix
          backend:
            service:
              name: tradephlo-integration-srv
              port:
                number: 5000
        - path: /?(.*)
          pathType: Prefix
          backend:
            service:
              name: tradephlo-client-srv
              port:
                number: 3000

修复后无需使用通配符域名,单个域名的SSL证书即可正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:06:05