【问题标题】:Kubernetes Ingress path: allow all exept for /blog/Kubernetes Ingress 路径:允许除 /blog/ 之外的所有路径
【发布时间】:2021-03-24 10:10:17
【问题描述】:

我有一个在 Kubernetes 上运行的服务,可以在 example.com 这样的域上使用。我正在尝试添加一个应该重定向到 wordpress 博客的路径。所以我需要添加一条规则:/blog/ 中的所有内容都应该重定向到 wordpress,否则使用主应用程序。

我尝试在主应用程序路径中包含一个正则表达式,以包含除 /blog/ 之外的所有内容

  - host: example.com
    http:
      paths:
      - path: /^(?!blog).*$

但我不断收到must be a valid regex,或者如果我删除斜线,它会显示must be an absolute path。我似乎无法找到一种方法来做到这一点,它只是不断重定向到我的根应用程序

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: app
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        backend:
          serviceName: MainAppService
          servicePort: 3010
      - path: /blog/*
        backend:
          serviceName: BlogService
          servicePort: 3020

【问题讨论】:

    标签: kubernetes microservices kubernetes-ingress nginx-ingress


    【解决方案1】:

    试试这个 -

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      annotations:
        nginx.ingress.kubernetes.io/rewrite-target: /$1
        kubernetes.io/ingress.class: nginx
      name: app
    spec:
      rules:
      - host: example.com
        http:
          paths:
          - path: /(.*)
            backend:
              serviceName: MainAppService
              servicePort: 3010
          - path: /blog/(.*)
            backend: 
              serviceName: BlogService
              servicePort: 3020
    

    我想,这应该可以工作

    【讨论】:

    • 我在弄清楚 rewrite-target 部分时遇到了一些问题,但这确实有效!
    猜你喜欢
    • 2019-05-03
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 2019-01-31
    • 1970-01-01
    相关资源
    最近更新 更多