Kubernetes Ingress 路径:允许除 /blog/ 之外的所有路径

Kubernetes Ingress path: allow all exept for /blog/

我在 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

试试这个 -

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    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

我想,这应该行得通