首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes: Ingress nginx不能很好地处理/api路由的子路径。

Kubernetes: Ingress nginx不能很好地处理/api路由的子路径。
EN

Stack Overflow用户
提问于 2022-06-09 09:00:35
回答 1查看 333关注 0票数 0

我正在尝试访问后端的子路径,但是除了/api/之外,它似乎不适用于任何东西,比如/api/hello。

这是我的配置:

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1

kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: "true"
    # ADD ANNOTATION
    nginx.ingress.kubernetes.io/rewrite-target: /$2

spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /api(/|$)(.*)
            # UPDATE PATH
            pathType: Prefix
            backend:
              service:
                name: server-srv
                port:
                  number: 3000

          - path: /
            pathType: Prefix
            backend:
              service:
                name: client-srv
                port:
                  number: 3000

当尝试访问/api中的子路径时,我将收到404 not。

任何帮助都是非常感谢的~!

EN

回答 1

Stack Overflow用户

发布于 2022-07-01 11:18:15

每个路径都需要有一个对应的路径类型。不包含显式pathType的路径将失败验证。

唯一支持的通配符是*字符。*字符必须在正斜杠(/)后面,并且必须是模式中的最后一个字符。例如,/、/foo/和/foo/bar/*是有效模式,但/foo/bar和/foo//bar不是,更特定的模式优先于较不特定的模式。如果同时具有/foo/和/foo/bar/,则会将/foo/bar/bat用于匹配/foo/bar/.有关路径限制和模式匹配的更多信息,请参见URL地图文档

建议:尝试将路径命名为/api/*

其他参考文档:

https://github.com/kubernetes/ingress-nginx/issues/1120#issuecomment-322007251 服务

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72557500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档