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

Azure AKS ingress-nginx部署下Swagger UI可访问但API调用404问题求助

问题原因

你当前的Ingress规则仅配置了/swagger前缀的路径转发,只有请求路径以/swagger开头的流量才会被转发到后端的api-gateway服务。Swagger UI的静态资源都属于/swagger路径下,所以可以正常加载,但你发起业务API调用时的路径(比如/api/xxx、/v1/xxx这类)不属于/swagger前缀,无法匹配到Ingress规则,因此返回404错误。

解决方案

根据你的业务场景选择以下任意一种配置调整方式即可:

  • 方式一:如果你的业务API有统一前缀(比如所有API都以/api开头),直接在Ingress的paths列表中新增对应前缀的转发规则即可,示例配置如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: api-gateway-ingress
  annotations:
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
    cert-manager.io/cluster-issuer: letsencrypt-prod #letsencrypt-staging
    nginx.ingress.kubernetes.io/ssl-redirect: 'true'
spec:
  tls:
    - hosts:
        - my-domain.com
      secretName: tp-api-gateway-wildcard # get it from certificate.yaml
  rules:
    - host: my-domain.com
      http:
        paths: 
          - path: /swagger
            pathType: Prefix
            backend:
              service:
                name: api-gateway
                port:
                  number: 80
          # 新增业务API前缀匹配规则,可根据实际前缀修改path值
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: api-gateway
                port:
                  number: 80
  ingressClassName: nginx
  • 方式二:如果你的业务API没有统一前缀,或者希望该域名下的所有请求都转发到api-gateway服务,直接替换为根路径的转发规则即可,示例配置如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: api-gateway-ingress
  annotations:
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
    cert-manager.io/cluster-issuer: letsencrypt-prod #letsencrypt-staging
    nginx.ingress.kubernetes.io/ssl-redirect: 'true'
spec:
  tls:
    - hosts:
        - my-domain.com
      secretName: tp-api-gateway-wildcard # get it from certificate.yaml
  rules:
    - host: my-domain.com
      http:
        paths: 
          - path: /
            pathType: Prefix
            backend:
              service:
                name: api-gateway
                port:
                  number: 80
  ingressClassName: nginx

修改配置后重新apply即可生效,业务API请求就能正常转发到后端服务。

内容的提问来源于stack exchange,提问作者Reda E.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:18:02